事件处理-在jQuery click()期间总是同步调用这些处理程序



通过一些简短的测试,似乎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");

因此,上面的代码将始终显示两个警告,然后将链接颜色更改为红色

相关内容

  • 没有找到相关文章

最新更新