Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 动态加载的div内容中的jQuery工具提示_Javascript_Jquery - Fatal编程技术网

Javascript 动态加载的div内容中的jQuery工具提示

Javascript 动态加载的div内容中的jQuery工具提示,javascript,jquery,Javascript,Jquery,我有这个工具提示功能(工作正常): 然后我有一个函数,每10秒加载一个div内容(工作正常): 除了在动态加载的div中,这个链接在任何地方都可以正常工作 <a class="tooltip" data-ajax="id=5" href="tooltip.html"Link</a> 更改DOM内容时,需要重新应用工具提示。 创建一个函数 function applyTooltip () { $('.tooltip').jBox('Tooltip', { closeOnM

我有这个工具提示功能(工作正常):

然后我有一个函数,每10秒加载一个div内容(工作正常):

除了在动态加载的div中,这个链接在任何地方都可以正常工作

<a class="tooltip" data-ajax="id=5" href="tooltip.html"Link</a>

更改DOM内容时,需要重新应用工具提示。
创建一个函数

function applyTooltip () {
$('.tooltip').jBox('Tooltip', {
   closeOnMouseleave: true,
   ajax: {
      url: 'tooltips/tooltip.jsp',
      reload: true,
      getData: 'data-ajax',
      setContent: true,
      spinner: true
   }
});

} 
在JQuery加载回调上调用函数

$('#responsecontainer').load('live.jsp', applyTooltip);
   var refreshId = setInterval(function() {
      $('#responsecontainer').load('live.jsp', applyTooltip);
      }, 30000);
   $.ajaxSetup({ cache: false });
} );
jBox附带了一个attach()方法:

应使用此方法连接jBox并将jBox放入变量中:

var myJBox = new jBox('Tooltip', {
   closeOnMouseleave: true,
   attach: '.tooltip',
   ajax: {
      url: 'tooltips/tooltip.jsp',
      reload: true,
      getData: 'data-ajax',
      setContent: true,
      spinner: true
   }
});
然后,您可以随时使用
myJBox.attach()
重新连接jBox:


这样可以确保jBox不会多次将自身附加到元素。

工具提示插件很可能有更新方法,正是出于这个原因。或者,在添加新元素后,只需再次调用整个工具提示设置。在我看来,您刚刚错过了一个结束
<代码>
很高兴它能帮上忙:)虽然这很有效,但它不是最佳实践。查看我的答案,最好使用.attach()方法来确保不会多次附加jBox。与@StephanWagner一致,最佳做法是使用attach()方法。虽然我仍然想知道元素是什么时候从DOM及其绑定中删除的,但是jBox是如何被多次连接的?如果我遗漏了什么,请帮助我理解。
$('#responsecontainer').load('live.jsp', applyTooltip);
   var refreshId = setInterval(function() {
      $('#responsecontainer').load('live.jsp', applyTooltip);
      }, 30000);
   $.ajaxSetup({ cache: false });
} );
var myJBox = new jBox('Tooltip', {
   closeOnMouseleave: true,
   attach: '.tooltip',
   ajax: {
      url: 'tooltips/tooltip.jsp',
      reload: true,
      getData: 'data-ajax',
      setContent: true,
      spinner: true
   }
});
$('#responsecontainer').load('live.jsp', function () { myJBox.attach(); });
   var refreshId = setInterval(function() {
      $('#responsecontainer').load('live.jsp', function () { myJBox.attach(); });
   }, 30000);
   $.ajaxSetup({ cache: false });
} );