0

再会。

我有代码:

<a class="fancybox iframe" href="http://google.com" id="online_form_a">test</a>

<script>
$(document).ready(function() {
    // add the fancy box click handler here
    setTimeout(function() {
        $("#online_form_a").trigger('click');
    },10);
});
</script>

此代码应在 10 秒后单击元素<a>,但脚本不起作用。

请告诉我哪里出错了?

PS:看工作脚本可以看JsFiddle

4

4 回答 4

3

触发点击事件意味着您正在调用绑定到该元素的点击事件的函数..而不点击该元素

但是您的元素没有附加点击事件..

像这样做...

<a class="fancybox iframe" href="http://google.com" id="online_form_a">test</a>


$(document).ready(function() {
     // add the fancy box click handler here

     $('a').click(function(){
       window.location.href = "http://google.com";
     });

     setTimeout(function() {
        $("#online_form_a").trigger('click');
     },10000);                //  this value is in milliseconds(1 sec = 1000 ms)
 });
于 2013-06-14T13:05:28.400 回答
1

不是 10,这是毫秒,所以如果你想要 10 秒,你必须使用 10000。

演示http://jsfiddle.net/yeyene/NW5Rj/2/

$(document).ready(function() {
    // add the fancy box click handler here
    setTimeout(function() {
        $("#online_form_a").trigger('click');
    },10000);

    $('a').click(function(){
       alert('Hi'); 
    });
});
于 2013-06-12T03:01:30.640 回答
0

在这里,我假设您想自动重定向到's href 值,使用.trigger()a不会发生。

trigger 方法将触发已注册的事件处理程序,但可能不会触发与元素关联的默认操作。

来自文档

尽管 .trigger() 模拟了一个事件激活,并带有一个合成的事件对象,但它并不能完美地复制一个自然发生的事件。

另一种选择是.triggerHandler(),但即使这样也不会导致默认行为

.triggerHandler() 方法不会导致事件的默认行为发生(例如表单提交)。

所以解决方案是在window.location这里使用

window.location = $('#online_form_a').attr('href')
于 2013-06-12T03:07:20.243 回答
0
<a class="fancybox iframe" href="http://google.com" id="online_form_a" >test</a>
$(document).ready(function() { // 在此处添加花哨的框点击处理程序 setTimeout(function() { location.href = $("#online_form_a").attr('href'); },1000); });
于 2013-06-12T06:13:05.947 回答