JavaScript 的 click() 可以在没有事先绑定的情况下触发链接点击吗?
当尝试使用 jQuery 的 click() 函数模拟链接点击时,用户观察到行为上的差异,特别是当事件处理程序先前未绑定到链接时。在没有事先绑定的情况下查询“a”链接并调用 $('a').click() 显然不会产生任何操作,这与浏览器本机点击处理程序的预期触发相反。
意外事件行为
进一步观察表明,即使事件处理程序本身为空,这种异常行为也会在设置事件处理程序后消失,如以下代码所示:
$('a').click(function(){return true;}).click();
应用此方法可以启用预期的链接点击,导航到链接页面,就像直接点击一样。
解释和替代解决方案
与用户最初的观察相反,它已被确定这种异常行为不会发生。在不绑定事件处理程序的情况下调用 click() 应始终触发浏览器的默认操作。如果情况并非如此,则表明代码中的其他地方存在问题。
作为 click() 的替代方案,请考虑使用普通 JavaScript 直接模拟链接点击:
document.getElementById("a_link").click()
This方法绕过与 jQuery 的任何潜在冲突并保证所需的行为。
以上是为什么 JavaScript 的 click() 在没有事先绑定的情况下不触发链接点击?的详细内容。更多信息请关注PHP中文网其他相关文章!