Javascript 动态加载的div内容中的jQuery工具提示
我有这个工具提示功能(工作正常): 然后我有一个函数,每10秒加载一个div内容(工作正常): 除了在动态加载的div中,这个链接在任何地方都可以正常工作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
<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 });
} );