Javascript 如何在';按键向下';在jquery中将事件作为参数传递给该函数时 $(函数(){ $(“#全名”).keydown(handleName); }); 函数handleName(e){ if(e.shiftKey | | e.ctrlKey | | e.altKey){ e、 预防默认值(); }否则{ var key=e.keyCode; 如果(!((key==8)| |(key==32)| |(key==46)| |(key>=35&&key=65&&key
event.keyCode已被弃用。应改用Javascript 如何在';按键向下';在jquery中将事件作为参数传递给该函数时 $(函数(){ $(“#全名”).keydown(handleName); }); 函数handleName(e){ if(e.shiftKey | | e.ctrlKey | | e.altKey){ e、 预防默认值(); }否则{ var key=e.keyCode; 如果(!((key==8)| |(key==32)| |(key==46)| |(key>=35&&key=65&&key,javascript,jquery,jquery-events,Javascript,Jquery,Jquery Events,event.keyCode已被弃用。应改用e.which event.which属性规范化event.keyCode和event.charCode。建议监视键盘键输入的event.which。有关详细信息,请阅读MDN上的event.charCode KeyboardEvent.keyCode:不再建议使用此功能。尽管某些浏览器可能仍支持此功能,但它可能已从相关web标准中删除,可能正在删除,或者可能仅出于兼容目的而保留。请避免使用此功能,并尽可能更新现有代码;请参阅请注意,此功能可能随时停止
e.which
event.which属性规范化event.keyCode和event.charCode。建议监视键盘键输入的event.which。有关详细信息,请阅读MDN上的event.charCode
KeyboardEvent.keyCode:不再建议使用此功能。尽管某些浏览器可能仍支持此功能,但它可能已从相关web标准中删除,可能正在删除,或者可能仅出于兼容目的而保留。请避免使用此功能,并尽可能更新现有代码;请参阅请注意,此功能可能随时停止工作
以及:
关于代码的一些注释: 最好在设置侦听器时定义一个匿名函数。这将允许您向函数发送任何想要作为参数的变量
$(function (){
$("#fullName").keydown(handleName);
});
function handleName(e){
if (e.shiftKey || e.ctrlKey || e.altKey) {
e.preventDefault();
} else {
var key = e.keyCode;
if (!((key == 8) || (key == 32) || (key == 46) || (key >= 35 && key <= 40) || (key >= 65 && key <= 90))) {
e.preventDefault();
}
}
}
此外,如果您的元素是动态创建的,则必须在这些元素上再次设置侦听器。最好以要侦听的元素的某个父/祖先为目标:
$(function (){
var testString = "this is an example of another variable";
$("#fullName").keydown(function(e) {
handleName(e, testString); //you can send in more than just the default event argument this way
});
});
并且,正如我在评论中所述,在代码中的不同位置使用console.log
,查看调用了什么以及使用了什么参数。将此行作为函数handleName()
的第一行:
console.log(“handleName()”,e,e.which)
将事件传递给函数没有问题。问题是键==N
或if
语句中的条件都相互矛盾。您到底想在那里实现什么?您确定它没有调用函数吗?在代码中放入一些控制台。记录以查看实际运行的代码ning。或者,使用浏览器的调试器并设置一些断点。它会给出一个错误,表示“e未定义”。因此,基本上,如果我要传递参数,我必须创建一个匿名函数,并在其中调用特定函数?是的,基本上,养成这样编写侦听器的习惯
$(function (){
var testString = "this is an example of another variable";
//use .on() to set a listener on an ancestor node:
$(document).on("keydown", "#fullName", function(e) {
handleName(e, testString); //you can send in more than just the default event argument this way
});
});