0

我有一个网站,有无限的页面和动态加载的内容。

目前我正在使用 jQuery Tipsy 插件,并且需要在任何向网站动态添加内容的函数中调用它(以获取此新内容的工具提示)。我目前正在将绑定更改为 ons,这将有助于在涉及点击和其他事件的情况下实现这一点。

我当前的代码,重复了很多是:

   $("[data-tooltip]").tipsy({settings here});

是否可以使用 jQuery ON,并将其绑定到正文,如果将内容添加到正文,则内容(如果它具有 [data-tooltip] 属性)将自动执行提示功能?

例如:

 $("body").on("something","[data-tooltip]", function (e) { 
         $("[data-tooltip]").tipsy({settings here}); 
 });

谢谢

4

1 回答 1

0

tipsy正如您可能知道的那样,您最好在每次新内容加载后实际应用:

$.ajax({
   ..
   success: function( newHtml ) {
       $('#container').append( newHtml );
       $('#container .tipsy').tipsy({
           /** Your settings **/
       });
   }
}); 

实现您的要求;您必须应用某种“听众”。要等待插入的任何新 DOM 元素,它是原始的基本形式:

function listenForNewToolTips() {
    $('.someclass[data-tooltip]:not([data-hastipsy])').tipsy({ 
           /** Apply data-hastipsy='true' **/ 
    });
    //Look again in 1000 milliseconds.
    setTimeout( listenForNewToolTips, 1000 );
}

以上,是相当不够的,因为它会是一个恒定的循环。on监听许多事件,但令人惊讶的是,监听每个 DOM 元素更改的事件并不多:

  • 突变观察者(新的,非跨浏览器)
  • DOMNodeInserted(已弃用)
  • setTimeout()
于 2014-04-07T14:21:16.620 回答