jQuery的click()没有点击?
我认为jQuery的click()
可以让我们添加一个处理程序或只是单击一个元素?
但是,我尝试过:
$(function() { setTimeout(function() { $('a').first().trigger('click'); // or click(), the same }, 3000); });
更新:这与使雅虎媒体播放器自动启动jQuery的最佳方式有关? 所以应该已经有了用于点击媒体的事件处理程序,那么为什么来自trigger('click')
.click()
与trigger('click')
该事件处理程序无关?
调用click()
方法不会模拟单击链接。 它调用受影响元素上的任何click()
处理程序。 这是一个微妙但重要的区别。 如果您想模拟单击链接,则没有可行的跨浏览器方式来执行此操作。
我最近遇到了类似的问题。 没有任何反应的原因是因为锚标签没有jquery调用的“click”方法。 例如,如果您将锚标记更改为标记,则.click()将模拟用户按预期单击。
有一些“hacky”解决方法,但这取决于如何设置锚标记的事件处理程序。 例如,如果锚标签href属性中有一些javascript,这将起作用(这恰好是我的问题的解决方案):
var lnk = $('a.mylink'); window.location = lnk.attr('href');
我不确定,如果.first()
是一种使用此function的可能方法。 你有没有尝试过
$('a:first').click();
代替? 如果.first()
不存在,则抛出错误,永远不会达到.click()
,并且由于它存在于匿名函数中,您甚至可能根本看不到错误(静默失败)。
以下是模拟链接点击的操作(只要这些是普通链接):
location.href = $('a').first().get(0).href;
如果您已有链接的事件处理程序,则可以使用trigger()
方法:
$('a:first').trigger('click');
你究竟想做什么? 链接通常用于重定向到新页面。 因此,如果您需要重定向,请使用以下内容:
$(function() { setTimeout(function() { window.location.replace("linkToNewPage.html"); }, 3000); });
“有一个选项可供选择.Plz检查此页面http://mediaplayer.yahoo.com/api/#example_usage如果你设置autoplay = true,第一首歌曲将自动启动..”
– 凯
和—关联:
使雅虎媒体播放器自动启动jQuery的最佳方法是什么?
否则单击将单击处理程序附加到您想要的内容,例如:
$('#MyElementID').click(function() { //How you want it to behave when you click it. }); window.setTimeout(YourFunction, 3000); function YourFunction { //Your function that runs. Maybe fire the onclick handler? }
?
您尝试将click()
方法用于其他目的而不是其目的。 click()
,因此您可以捕获特定元素的单击,而不是模拟它。
在这里阅读更多