我在各个地方都使用了event.preventDefault()
和event.stopPropagation()
,但要让它发挥作用似乎总是有点困难。
我现在用实例打了一堵墙: -
$("#existing_Flavours").on("keydown", function(event){
switch(event.which){
case 9:
//tab called permit
break;
default:
event.preventDefault();
event.stopPropagation();
} // end switch
});
我希望tab键可以正常工作,但没有别的。
无休止地绕过这个,无论我怎样都无法阻止正常的击键发生。
答案 0 :(得分:2)
如果元素是动态的,你需要将事件委托给绑定keydown时实际存在的元素:
$(document).on("keydown", "#existing_Flavours", function(event){
switch(event.which){
case 9:
//tab called permit
break;
default:
//event.preventDefault();
//event.stopPropagation();
// or just use return false
return false;
}
});
答案 1 :(得分:0)
我的猜测是它与哪些事件实际导致角色出现有关。我会尝试绑定keydown keyup keypress
以确保你抓住所有这些。
答案 2 :(得分:-1)
好吧,首先,我不喜欢切换到很多(可能这无关),试试:
$("#existing_Flavours").live("keydown", function(event){
var keyCode = event.keyCode || event.which;
if (keyCode != 9) {
event.preventDefault();
}
});