假设我有 2 个如下代码,其中 1 个使用 alert()
1 个不使用。我发现在 chrome 中,使用 alert()
会在文本区域中插入一个制表符 \t
。
$(function() {
$("textarea").bind("keydown", "tab", function() {
alert("something");
return false;
});
$("textarea").bind("keydown", "shift+tab", function() {
this.value = "don't alert()";
return false;
});
});
为什么会发生这种情况?以及如何防止这种行为(返回 false 后添加制表符)
最佳答案
您可以尝试在“return false”之前使用此代码
if(jQuery.browser.msie) {
event.cancelBubble = true;
} else {
event.stopPropagation();
}
您需要在每个绑定(bind)中添加参数事件:
function(event) { ... }
关于Chrome 上的 jQuery 热键 "Tab"仍会插入\t 字符,即使在返回 false 后也是如此,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4320707/