Javascript 仅当将脚本代码放置在输入框下方时,按键向下脚本才起作用?

Javascript 仅当将脚本代码放置在输入框下方时,按键向下脚本才起作用?,javascript,jquery,keydown,Javascript,Jquery,Keydown,当我将脚本代码放在文本框上方时,它不起作用,但如果我将代码放在输入字段下方,则它起作用 <script src="js/jQueryv3.1.1.js" type="text/javascript"></script> <script> $("input").keydown(function(e){ alert(); }); </script> <input type="number" id="phoneNo" /> $

当我将脚本代码放在文本框上方时,它不起作用,但如果我将代码放在输入字段下方,则它起作用

<script src="js/jQueryv3.1.1.js" type="text/javascript"></script>

<script>
$("input").keydown(function(e){
    alert();
});
</script>

<input type="number" id="phoneNo" />

$(“输入”).keydown(函数(e){
警惕();
});
不起作用

但下面的方法是有效的

<script src="js/jQueryv3.1.1.js" type="text/javascript"></script>

<input type="number" id="phoneNo" />

<script>
$("input").keydown(function(e){
    alert();
});
</script>

$(“输入”).keydown(函数(e){
警惕();
});

假设要将处理程序附加到已定义的元素,可以使用

$("input").keydown(function(e){
    alert();
});
正如您已经使用的

但是,如果要将事件处理程序附加到动态元素(稍后创建的元素),可以使用:

$(document).on('keydown', 'input', function(e){
    alert();
});

假设您想将处理程序附加到一个已定义的元素,您可以使用

$("input").keydown(function(e){
    alert();
});
正如您已经使用的

但是,如果要将事件处理程序附加到动态元素(稍后创建的元素),可以使用:

$(document).on('keydown', 'input', function(e){
    alert();
});
用$(document).ready()包装代码,如:

当您在输入框之前定义输入元素时,jQuery无法找到它,但是当您在输入框之后写入相同的元素时,它将获得关于输入框的信息

希望它能对您有所帮助。

用$(document).ready()包装您的代码,如:

当您在输入框之前定义输入元素时,jQuery无法找到它,但是当您在输入框之后写入相同的元素时,它将获得关于输入框的信息


希望能对你有所帮助。

你忘了问问题了。但无论如何,在第一个脚本中,浏览器在解析输入元素之前执行脚本,因此
$(“input”)
无法找到它。如果要将脚本放在上面,则必须使用文档就绪处理程序延迟任何试图访问DOM元素的代码的执行。@phpNoob这是您需要查看jquery的.load(),.ready()事件的地方。您忘记问问题了。但无论如何,在第一个脚本中,浏览器在解析输入元素之前执行脚本,因此
$(“input”)
无法找到它。如果要将脚本放在上面,则必须使用文档就绪处理程序延迟任何试图访问DOM元素的代码的执行。@phpNoob这是您需要查看jquery的.load(),.ready()事件的地方。OP的代码不包括任何动态创建的元素。OP的代码不包括任何动态创建的元素。