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

标签 javascript jquery onload-event

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

以下代码旨在将加载事件附加到 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. jQuery 稍后对页面执行的操作删除了单击事件。

注意——此事件有效:

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

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

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

最佳答案

我实际上不知道是否仍然支持“元素加载”事件;但无论哪种方式,您实际上都不应该需要它,因为您已经在 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 .

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

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

关于javascript - jQuery 元素完全加载后如何执行单击事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35122244/

相关文章:

javascript - window.location.reload(true) 重新加载页面,但页面需要刷新才能显示更改

javascript - 在页面重新加载时根据屏幕宽度切换菜单的可见性

javascript - 使用 window.onload 滚动到特定 div,而不添加网址

javascript - (REACT) 如何从数组创建动态选择选项列表

javascript - 单击 Knockout.js 后如何在选择上显示 optionsCaption 默认值?

javascript - 如何替换 css ('background-image' )

javascript - 图像加载事件未在 iPhone (IOS) 上触发

javascript - 未捕获的范围错误 : Maximum call stack size exceeded with innerHTML

javascript - leaflet如何使用js制作动态图片弹出

jquery location.pathname.split ("/")返回空的第一个和最后一个元素