这是来自here的重新提出的问题。经过一些测试后我解决了这个问题,但没有解决问题的方法。无需阅读上一个问题,这是简化的代码:
问题 - > trigger('click')
执行,但内部循环(intervaled)函数时事件不会触发
$(document.ready(function(){
var checkForConfirmation = function(){
clearInterval(checkInterval);
$("#anchorLink").trigger('click');
}
var checkInterval = setInterval(function(){checkForConfirmation()}, 5000);
});
正在按间隔调用该函数。当回复正确的响应时,间隔停止,并且模拟锚点链接上的点击。
在html文件中有一个锚链接<a id="anchorLink" href="#hiddenDiv">Show</a>
它指向隐藏的div,它有一些内容。我正在使用Fancybox插件在单击锚链接时显示隐藏的div。
如果我按预期点击Show
链接fancybox节目。
如果我从后端获得响应,代码将按预期执行,但不会显示fancybox
如果我将$("#anchorLink").trigger('click');
移到checkForConfirmation
函数之外,则会显示fancybox
当我用$("#anchorLink").trigger('click');
替换$("#anchorLink").text('Im clicked');
时,<a id="ancoredLink">
标记中会显示字符串。
这是摘要,我在不同情况下尝试过
问题显然是在循环函数中触发单击事件。 $("#anchorLink")
选择器是可访问的,它可以从其他任何地方正确地触发它。显然在循环函数内触发鼠标事件存在问题。
有什么建议吗?
答案 0 :(得分:3)
尝试:
$(document).ready(function(){
// ...
});
而不是:
$(document.ready(function(){
// ...
});