tijian_tieying/web/dccdc/ligerUI/js/plugins/ligerTip.js
2025-02-20 12:14:39 +08:00

192 lines
5.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 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);