这是 here 中的一个改写的问题。经过一些测试后,我隔离了问题,但没有解决它的线索。无需阅读上一个问题,这是简化的代码:
问题 -> trigger('click')
执行,但在循环(间隔)函数内时不会触发事件
$(document.ready(function(){
var checkForConfirmation = function(){
clearInterval(checkInterval);
$("#anchorLink").trigger('click');
}
var checkInterval = setInterval(function(){checkForConfirmation()}, 5000);
});
该函数正在间隔调用。当回复正确的响应时,间隔停止,并模拟 anchor 链接的点击。
在html文件中有一个 anchor 链接<a id="anchorLink" href="#hiddenDiv">Show</a>
.
它指向有一些内容的隐藏div。我正在使用 Fancybox 插件在单击 anchor 链接时显示隐藏的 div。
如果我点击Show
正如预期的那样,链接 fancybox 显示。
如果我从后端得到响应,代码将按预期执行,但不会显示 fancybox。
如果我搬家$("#anchorLink").trigger('click');
外checkForConfirmation
函数,fancybox显示。
当我替换$("#anchorLink").trigger('click');
时与 $("#anchorLink").text('Im clicked');
该字符串显示在 <a id="ancoredLink">
中标签。
这是总结,我在不同情况下都尝试过。
问题显然是在循环函数中触发 click 事件。 $("#anchorLink")
选择器是可访问的,它从其他地方正确触发它。显然循环函数内触发鼠标事件有问题。
有什么建议吗?
最佳答案
尝试:
$(document).ready(function(){
// ...
});
而不是:
$(document.ready(function(){
// ...
});
关于triggers - jQuery .trigger ('click' )在间隔函数内?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5037454/