通过一些简短的测试看来click()
将触发任何适用的处理程序同步地(也就是说,处理程序都在之前调用click()
返回),这对于我正在开发的东西来说是理想的。然而,jQuery 文档似乎并没有保证(没有提到一种或另一种方式)处理程序是同步调用的。
同步行为是否在某处得到保证,或者是否可以安全地假设为跨浏览器且面向未来?
是的,在正常的默认功能启动之前,所有点击事件都会在幕后同步运行。查看此操作的一种方法是添加一个或多个click
事件到锚标记。如果任何附加函数返回 false。它将取消锚标记的默认功能。换句话说,您不会进入该页面href
属性。
$("a:first")
.click(function() { alert("I was attached first!"); return false; })
.click(function() { alert("Running despite the earlier 'return false'!");});
您会注意到它们同步运行,并且按照它们附加的顺序运行!任何附加函数都可以返回 false 以取消锚标记发生的正常重定向。
使用jQuery触发时click
事件时,所有附加函数将在执行其余链式操作之前运行。
$("a:first")
.click(function() { alert("I was attached first!"); return false; })
.click(function() { alert("Running despite the earlier 'return false'!");});
$("a:first").click().css("color", "red");
因此,上面的代码将始终显示两个警报,然后将链接颜色更改为红色。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)