jquery qtip 点击事件导致弹框消失

概述

  • 在使用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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值