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,除非它确实提供了较差的取消,并且请记住在退出函数之前防止元素的默认操作。 让我们的编码保持整洁!
jquery 停止函数运行