jQuery .trigger('click')内部区间函数?

时间:2011-02-18 03:58:16

标签: triggers mouseevent jquery setinterval

这是来自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")选择器是可访问的,它可以从其他任何地方正确地触发它。显然在循环函数内触发鼠标事件存在问题。

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

尝试:

$(document).ready(function(){
  // ...
});

而不是:

$(document.ready(function(){
  // ...
});