Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
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 - Fatal编程技术网

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中将事件作为参数传递给该函数时 $(函数(){ $(“#全名”).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标准中删除,可能正在删除,或者可能仅出于兼容目的而保留。请避免使用此功能,并尽可能更新现有代码;请参阅请注意,此功能可能随时停止

event.keyCode已被弃用。应改用
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
    });
});