如何在jQuery元素完全加载后执行click事件?

时间:2016-02-01 02:37:17

标签: javascript jquery onload-event

如何在元素完全加载后执行click事件?

以下代码旨在为此目的将load事件附加到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. 附加了事件,但ul。
  3. 已经发生了加载事件
  4. jQuery稍后对页面执行的操作已删除了click事件。
  5. 注意 - 此活动有效:

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

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

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

1 个答案:

答案 0 :(得分:1)

我实际上并不知道"元素是否已加载"事件是否仍受支持;但无论哪种方式,你都不应该实际需要它,因为你已经在document ready event handler内执行了。这应该足够了:

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

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

Here's a fiddle that demonstrates

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

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