tijian_tieying/web/dccdc/ligerUI/js/plugins/ligerTip.js

192 lines
5.8 KiB
JavaScript
Raw Normal View History

2025-02-20 12:14:39 +08:00
/**
* jQuery ligerUI 1.3.2
*
* http://ligerui.com
*
* Author daomi 2015 [ gd_star@163.com ]
*
*/
(function ($)
{
//气泡,可以在制定位置显示
$.ligerTip = function (p)
{
return $.ligerui.run.call(null, "ligerTip", arguments);
};
//在指定Dom Element右侧显示气泡
//target将ligerui对象ID附加上
$.fn.ligerTip = function (options)
{
this.each(function ()
{
var p = $.extend({}, $.ligerDefaults.ElementTip, options || {});
p.target = p.target || this;
//如果是自动模式:鼠标经过时显示,移开时关闭
if (p.auto || options == undefined)
{
if (!p.content)
{
p.content = this.title;
if (p.removeTitle)
$(this).removeAttr("title");
}
p.content = p.content || this.title;
$(this).bind('mouseover.tip', function ()
{
p.x = $(this).offset().left + $(this).width() + (p.distanceX || 0);
p.y = $(this).offset().top + (p.distanceY || 0);
$.ligerTip(p);
}).bind('mouseout.tip', function ()
{
var tipmanager = $.ligerui.managers[this.ligeruitipid];
if (tipmanager)
{
tipmanager.remove();
}
});
}
else
{
if (p.target.ligeruitipid) return;
p.x = $(this).offset().left + $(this).width() + (p.distanceX || 0);
p.y = $(this).offset().top + (p.distanceY || 0);
p.x = p.x || 0;
p.y = p.y || 0;
$.ligerTip(p);
}
});
return $.ligerui.get(this, 'ligeruitipid');
};
//关闭指定在Dom Element(附加了ligerui对象ID,属性名"ligeruitipid")显示的气泡
$.fn.ligerHideTip = function (options)
{
return this.each(function ()
{
var p = options || {};
if (p.isLabel == undefined)
{
//如果是lable将查找指定的input并找到ligerui对象ID
p.isLabel = this.tagName.toLowerCase() == "label" && $(this).attr("for") != null;
}
var target = this;
if (p.isLabel)
{
var forele = $("#" + $(this).attr("for"));
if (forele.length == 0) return;
target = forele[0];
}
var tipmanager = $.ligerui.managers[target.ligeruitipid];
if (tipmanager)
{
tipmanager.remove();
}
}).unbind('mouseover.tip').unbind('mouseout.tip');
};
$.fn.ligerGetTipManager = function ()
{
return $.ligerui.get(this);
};
$.ligerDefaults = $.ligerDefaults || {};
//隐藏气泡
$.ligerDefaults.HideTip = {};
//气泡
$.ligerDefaults.Tip = {
content: null,
callback: null,
width: 150,
height: null,
x: 0,
y: 0,
appendIdTo: null, //保存ID到那一个对象(jQuery)(待移除)
target: null,
auto: null, //是否自动模式,如果是,那么:鼠标经过时显示,移开时关闭,并且当content为空时自动读取attr[title]
removeTitle: true //自动模式时默认是否移除掉title
};
//在指定Dom Element右侧显示气泡,通过$.fn.ligerTip调用
$.ligerDefaults.ElementTip = {
distanceX: 1,
distanceY: -3,
auto: null,
removeTitle: true
};
$.ligerMethos.Tip = {};
$.ligerui.controls.Tip = function (options)
{
$.ligerui.controls.Tip.base.constructor.call(this, null, options);
};
$.ligerui.controls.Tip.ligerExtend($.ligerui.core.UIComponent, {
__getType: function ()
{
return 'Tip';
},
__idPrev: function ()
{
return 'Tip';
},
_extendMethods: function ()
{
return $.ligerMethos.Tip;
},
_render: function ()
{
var g = this, p = this.options;
var tip = $('<div class="l-verify-tip"><div class="l-verify-tip-corner"></div><div class="l-verify-tip-content"></div></div>');
g.tip = tip;
g.tip.attr("id", g.id);
if (p.content)
{
$("> .l-verify-tip-content:first", tip).html(p.content);
tip.appendTo('body');
}
else
{
return;
}
tip.css({ left: p.x, top: p.y }).show();
p.width && $("> .l-verify-tip-content:first", tip).width(p.width - 8);
p.height && $("> .l-verify-tip-content:first", tip).width(p.height);
eee = p.appendIdTo;
if (p.appendIdTo)
{
p.appendIdTo.attr("ligerTipId", g.id);
}
if (p.target)
{
$(p.target).attr("ligerTipId", g.id);
p.target.ligeruitipid = g.id;
}
p.callback && p.callback(tip);
g.set(p);
},
_setContent: function (content)
{
$("> .l-verify-tip-content:first", this.tip).html(content);
},
remove: function ()
{
if (this.options.appendIdTo)
{
this.options.appendIdTo.removeAttr("ligerTipId");
}
if (this.options.target)
{
$(this.options.target).removeAttr("ligerTipId");
this.options.target.ligeruitipid = null;
}
this.tip.remove();
}
});
})(jQuery);