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