我正在使用AJAX加载我的网页的一部分,特别是jQuery.load()
。有了这个通常的jQuery模式
$('.classname').click(...) // Handler
// or, working with bootstrap
$("a[rel=tooltip]").tooltip() // Function
或类似的显然不再起作用,因为只有在加载页面时才会调用它们。我意识到第一个例子有jQuery.on,但我如何实现第二个?
是否有一种简单的(内置)方法可以将这些应用于jQuery.load
ed的东西,还是我必须自己解决这个问题?这似乎是很多人应该遇到的问题。
答案 0 :(得分:1)
你必须自己解决这个问题;但您可以通过在$("a[rel=tooltip]").tooltip()
:
load()
来轻松实现此目的
$('#blah').load('/somewhere.html', function () {
$('#blah').find('a[rel="tooltip"]').tooltip();
});
请务必将tooltip()
调用仅限于新加载的元素,否则您最终会在每个元素上多次初始化工具提示(可能会导致奇怪的行为)。
为避免重复代码,您只需定义辅助函数;
function initTooltip(root) {
return $(root || document).find('a[rel="tooltip"]').tooltip();
}
允许您初始化tooltip
。该参数是可选的,并允许您将初始化限制为仅提供元素的后代,例如:
jQuery(document).ready(function ($) {
initTooltip(); // equivilant to initTooltip(document);
$('#blah').load('/somewhere.html', function () {
initTooltip('#blah');
});
});