概述
在使用qtip时,qtip中显示的点击按钮会偶发触发qtip中的dom劫持事件,从而导致qtip消失
劫持dom源码位置
function m(t, i, s) {
o(e.body).delegate(t, (i.split ? i : i.join(re + " ")) + re, function() {
var t = T.api[o.attr(this, Y)];
t && !t.disabled && s.apply(t, arguments)
})
}
解决方案
通过子集找到qtip最上级,从而禁止劫持事件的发生
.parents(".qtip").addClass("qtip-disabled");
这样会导致qtip身上的事件都不可以使用了 这时候需要在qtip中的显示元素,加个hover事件,鼠标移入禁止劫持事件发生,鼠标移除如果所在元素不在qtip中则移除qtip-disabled
$(dom).hover(function () {
$(this) .parents(".qtip").addClass("qtip-disabled");
}, function (e) {
if (e.relatedTarget == null || $(this).parents(".qtip").find(e.relatedTarget).length > 0) return;
$(this) .parents(".qtip").removeClass("qtip-disabled");
});
别忘了,调用qtip插件的dom也许要一个hover去解锁被禁止的qtip