如何在 jQuery 元素完全加载后执行单击事件

How can I execute a click event after a jQuery element has been completely loaded?

本文关键字:加载 执行 单击 事件 jQuery 元素      更新时间:2023-09-26
如何在

元素完全加载后执行单击事件?

以下代码旨在为此目的将加载事件附加到 ul 标记,但它不起作用。

jQuery(function($){
    $('.nav-tabs').on('load', function () {
        // Breakpoint A: Control never gets here
        if (typeof (Storage) === "undefined")
            return;
        $(localStorage.setItem("CanTabId")).click();
    })
    // Breakpoint B: No click event seems to be attached
})

在我对jQuery的无知中,我可以想到几种解释:

  1. 事件永远不会附加。我支持这一点,我看到 ul 在断点 B 处没有点击事件。 我想jQuery可能会以其他方式处理事件,但似乎不太可能。
  2. 事件
  3. 已附加,但 ul 的加载事件已经发生。
  4. jQuery稍后对页面执行的操作删除了单击事件。

注意 -- 此事件有效:

$('.nav-tabs li a').on('click', function () {...))

我无法在SO或任何地方找到答案。

有人可以告诉我正确的方法吗? 非常感谢。

我实际上不知道是否仍然支持"元素加载"事件;但无论哪种方式,您实际上都不需要它,因为您已经在文档就绪事件处理程序中执行。这应该足够了:

$(function() {
    // document ready has fired - all your elements should have loaded.
    if (typeof (Storage) === "undefined")
        return;
    $(localStorage.getItem("CanTabId")).click();
})

这里有一个小提琴来演示。

也是一个可能的错误,您在附加click事件处理程序时尝试setItem - 这应该getItem吗?

$(localStorage.getItem("CanTabId")).click();