3

我正在使用 AJAX 加载我的网页的一部分,特别是jQuery.load(). 有了这个通常的 jQuery 模式

$('.classname').click(...) // Handler
// or, working with bootstrap
$("a[rel=tooltip]").tooltip() // Function

或类似的东西显然不再起作用,因为它们仅在页面加载时才被调用。我意识到第一个示例有 jQuery.on,但是我将如何实现第二个示例?

是否有一种简单的(内置)方法也可以将这些应用于jQuery.loaded 的东西,还是我必须自己解决它?似乎是很多人应该遇到的问题。

4

1 回答 1

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');
    });
});
于 2012-06-25T09:57:36.240 回答