gpt4 book ai didi

javascript - 为什么 Internet Explorer 在使用 event.preventDefault() 或返回 false 时在函数后停止

转载 作者:行者123 更新时间:2023-11-29 09:52:59 24 4
gpt4 key购买 nike

我有一些这样的代码:

$("input#checkbox").change(changeCheckbox);

function changeCheckbox() {

var inputCheck = $("input#checkbox"),
button = $("input#button");

if (inputCheck.is(":checked")) {

button.hide();

} else {

button.show();
}
}

这在所有现代浏览器和 IE 8 中都能完美运行

但是当我将这个与 event.preventDefault(); 一起使用时:

$("input#checkbox").change(changeCheckbox);

function changeCheckbox(event) {

event.preventDefault(); // <-- Here

var inputCheck = $("input#checkbox"),
button = $("input#button");

if (inputCheck.is(":checked")) {

button.hide();

} else {

button.show();
}
}

或者我设置return false;

$("input#checkbox").change(changeCheckbox);

function changeCheckbox() {

var inputCheck = $("input#checkbox"),
button = $("input#button");

if (inputCheck.is(":checked")) {

button.hide();

} else {

button.show();
}

return false; // <-- Here
}

然后该函数只工作一次,我不能用它在(仅)Internet Explorer 8

中做更多的事情

有人可以向我解释为什么会这样吗?

我还有很多其他功能,并且在 event.preventDefault();return false; 中使用了类似的代码,最后还有 OK...

我使用这个 jQuery 版本:jquery_1.10.1.min.js

提前致谢!

最佳答案

Can someone explain to me why this happens?

这是 Internet Explorer 中的错误(还有什么)。 The change event is supposed to be not cancelable ,与 click 事件相反(参见 Is event.preventDefault cancelling change events?jQuery/Javascript: Click event on a checkbox and the 'checked' attributeWhy does preventDefault() on a parent element's click 'disable' a checkbox?)。然而,当 change 事件被取消时,IE8 会阻止复选框被(取消)选中。 Try it here .

如何解决这个问题?只需删除 e.preventDefault() (or return false)从你的代码。无论如何,我看不出有任何理由使用它。

关于javascript - 为什么 Internet Explorer 在使用 event.preventDefault() 或返回 false 时在函数后停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18477092/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com