192 lines
5.8 KiB
JavaScript
192 lines
5.8 KiB
JavaScript
|
|
/**
|
|||
|
|
* 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);
|