相关疑难解决方法(0)

如果我没有使用绑定或单击已绑定事件处理程序,我可以调用jquery click()来跟随<a>链接吗?

我的JavaScript中有一个计时器,需要模拟点击一个链接,一旦时间流逝就转到另一个页面.要做到这一点,我正在使用jQuery的click()功能.我已经使用$().trigger()window.location也,我可以作出打算与所有三个它的工作.

我观察到一些奇怪的行为,click()我试图了解发生了什么以及为什么.

我正在使用Firefox来解决这个问题,但我也对其他浏览器会对此做些什么感兴趣.

如果我没有使用$('a').bind('click',fn)$('a').click(fn)设置事件处理程序,那么调用$('a').click()似乎什么都不做.它不会为此事件调用浏览器的默认处理程序,因为浏览器不会加载新页面.

但是,如果我首先设置一个事件处理程序,那么即使事件处理程序什么都不做,它也会按预期工作.

$('a').click(function(){return true;}).click();
Run Code Online (Sandbox Code Playgroud)

这会加载新页面,就像我自己点击了一样.

所以我的问题是双重的:这种奇怪的行为是因为我在某处做错了吗?click()如果我没有创建自己的处理程序,为什么调用对默认行为不起作用?

编辑:

当霍夫曼确定他试图复制我的结果时,我上面描述的结果实际上并没有发生.我不确定是什么原因引起了我昨天观察到的事件,但我今天肯定这不是我在问题中所描述的.

所以答案是你不能在浏览器中"伪造"点击并且所有jQuery都会调用你的事件处理程序.您仍然可以使用window.location更改页面,这对我来说很好.

javascript firefox jquery events click

175
推荐指数
6
解决办法
42万
查看次数

标签 统计

click ×1

events ×1

firefox ×1

javascript ×1

jquery ×1