jQuery的click()没有点击?

我认为jQuery的click()可以让我们添加一个处理程序或只是单击一个元素?

但是,我尝试过:

 $(function() { setTimeout(function() { $('a').first().trigger('click'); // or click(), the same }, 3000); }); 

并等了3秒,它不会点击页面中的第一个元素…怎么样?

更新:这与使雅虎媒体播放器自动启动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() ,因此您可以捕获特定元素的单击,而不是模拟它。

在这里阅读更多