Keydown 脚本仅在将脚本代码放在输入框下方时才起作用?

Keydown script only working when placing the script code below the input box?

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

<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>

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

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

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

$("input").keydown(function(e){
    alert();
});

因为你已经用过了。

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

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

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

$(function() {
    $("input").keydown(function(e){
        alert();
    });
});

$(document).ready(function() {
    $("input").keydown(function(e){
        alert();
    });
});

jQuery在输入框之前定义的时候找不到input元素,但是当你在输入框后面写同样的时候会获取到输入框的信息

希望对您有所帮助。