如何将函数绑定到元素?

时间:2014-11-29 03:53:16

标签: jquery jquery-plugins tooltip bind

我正在使用miniTip jQuery插件:http://goldfirestudios.com/blog/81/miniTip-jQuery-Plugin

使用以下代码:

$('#primary').on('hover', function() {

    $('.tooltip').miniTip({
        offset:30
    })
});

但是,当我使用ajax加载一些内容时,插件会停止工作。有没有办法可以绑定它,以便在加载新内容时重新加载?

1 个答案:

答案 0 :(得分:0)

插件没有“停止工作”,根本就不知道新添加的元素。如果您的相关代码在#primary上的悬停事件中触发,我必须假设id="primary"的元素是动态加载的,否则它 仍然有效。

如果就是这种情况,您只需更改hover事件即可使用附加到不变的委托事件处理程序祖先元素

e.g。

$(document).on('hover', '#primary', function() {

    $('.tooltip').miniTip({
        offset:30
    })
});

委托事件将事件处理的责任委托给祖先。祖先监听该事件(例如hover)从后代元素冒泡,然后应用jQuery过滤器。该函数然后应用于导致事件的任何匹配后代元素

这意味着匹配选择器的元素只需要在事件时存在(而不是在事件注册时,例如在DOM就绪时)。

注意:

  • 如果没有方便的祖先靠近,请始终使用document作为默认值。 'body'有一个与样式相关的错误(如果计算出的高度为0 ,它根本不会得到鼠标事件!)。
  • 如果这对您不起作用,则需要提供其余代码,因为问题可能是无关的(重复的元素ID,加载代码中的错误等)