作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图每隔 x 秒触发一次元素点击。每次都不是完全相同的元素(取决于用户选择的选项卡,它应该单击该选项卡),但它们都在同一个容器中(id #container
。所选元素具有类 .selected
并在用户点击它时获取该类。
这是我的代码:
var feedContainer = $('#container');
window.setInterval(function () {
var selectedTab = feedContainer.find('.selected');
selectedTab.trigger('click');
}, 10000);
问题是在超时之间,如果用户单击另一个选项卡,这部分不会接受:var selectedTab = feedContainer.find('.selected');
。它只获取之前选择的那个,而不是具有该类的新的。我该如何避免这种情况?
如果我每次都在计时器中进行整个选择,效果很好 (var selectedTab = $('#container .selected');
)。它似乎以某种方式缓存了上次运行的结果。
这是为什么?我如何强制它获取正确的元素?
最佳答案
你已经通过这样做自己缓存了元素:
var feedContainer = $('#container');
如果在将内容分配给变量后内容发生变化,则该变量不会自动更新为新内容。
只要您想对其进行操作,就可以像这样$('#container');
直接使用它。
关于javascript - jQuery 元素以某种方式缓存在 setInterval 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29767153/
我是一名优秀的程序员,十分优秀!