美好的一天。
我有代码:
<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>
,但脚本不起作用。
请告诉我哪里有错误?
P.S。:见工作脚本可以在JsFiddle
上看到答案 0 :(得分:3)
触发click事件意味着您正在调用绑定到该元素的click事件的函数。而不单击元素
但是您的元素没有附加点击事件..
这样做......
<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)
});
答案 1 :(得分:1)
不是10,这是毫秒,所以如果你想要10秒,你必须使用10000。
DEMO 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');
});
});
答案 2 :(得分:0)
我假设你想要自动重定向到a
的href值,使用.trigger()不会发生这种情况。
触发器方法将触发已注册的事件处理程序,但相关元素的默认操作可能不会被触发。
来自Doc
虽然.trigger()模拟事件激活,但完成了 合成事件对象,它不能完美复制一个 自然发生的事件。
另一个选择是.triggerHandler(),但即使这样也不会导致默认行为
.triggerHandler()方法不会导致默认行为 要发生的事件(例如表单提交)。
所以解决方案是在这里使用window.location
window.location = $('#online_form_a').attr('href')
答案 3 :(得分: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);
});