如何在元素完全加载后执行点击事件?
以下代码旨在将加载事件附加到 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 的无知,我可以想到几种解释:
- 该事件从未附加。我支持这一点,我看到 ul 在断点 B 处没有单击事件。我想 jQuery 可能会以其他方式处理事件,但这似乎不太可能。
- 事件已附加,但 ul 已发生加载事件。
- 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/