停止jQuery事件函数

如何在其轨道上停止jQuery或JavaScript函数的一种简单方法是使用return false行。 在大多数情况下,这不是最佳方法,应使用其他功能。

另请参见: 停止jQuery事件函数

返回假示例

简单地使用return false行停止函数并将控制权返回给调用函数或页面元素。 此jQuery函数切换#htmlelement的隐藏和显示,然后阻止浏览器访问所单击超链接的href元素

$("a.toggle").click(function () {
    $("#htmlelement").toggle(); // hide/show toggle
    return false; // Prevent browser from visiting the href
});

要考虑的其他变化:

  • return false;
  • preventDefault()
  • stopPropagation ()
  • stopImmediatePropagation()

您应该使用哪种方法?

return false;

仅在其他选项不适用或不确定或绝望时使用。

preventDefault()

在需要取消默认行为(例如说超链接,键盘快捷键或事件等)时使用,它还需要允许在回调函数中访问事件参数(在此示例中,我使用e ):

$("a").click(function (e) {
    // e == our event data
    e.preventDefault();
});

stopPropagation()

如果您为带有子元素的容器元素指定的规则有例外,则可以使用此方法。 例如,说您禁用了网页上的超链接,但特定区域中的链接除外。

$("a").click(function () {
   // Do nothing
});

$("#dohyperlinksdiv a").click(function (e) {
    // Don't cancel the browser's default action
    // and don't bubble this event!
    e.stopPropagation();
});


stopImmediatePropagation()

不错的功能,可以停止所有将来的绑定事件。 事件将按照绑定的顺序触发,当它击中stopImmediatePropagation()函数时,所有其他绑定的事件都不会触发。

$("div a").click(function () {
   // Do something
});

$("div a").click(function (e) {
   // Do something else
   e.stopImmediatePropagation();
});

$("div a").click(function () {
   // THIS NEVER FIRES
});

$("div").click(function () {
   // THIS NEVER FIRES
});

结论

除非确实需要,否则不要使用return false,除非它确实提供了较差的取消,并且请记住在退出函数之前防止元素的默认操作。 让我们保持代码整洁!

From: https://www.sitepoint.com/stop-jquery-event-functions/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值