jquery:不明白为什么元素选择器工作或不工作

fda*_*fda -5 html javascript jquery

我有一个带有以下元素的html文档

<input type="text" style="width: 40px;" name="rate" id="rate" value="1" />
Run Code Online (Sandbox Code Playgroud)

现在,我希望在更改此文本字段后使用jQuery运行函数.但我似乎不明白选择器是如何工作的.因为此示例有效:

<script>
// works
$(document).on('input', function() {
    alert(); 
});
</script>
Run Code Online (Sandbox Code Playgroud)

但当然它会触发所有相互作用的输入.所以我只想要一个特定的id响应:

<script>
// doesn't work
$(document).on('#rate', function() {
    alert(); 
});
</script>
Run Code Online (Sandbox Code Playgroud)

但它不起作用.既没有类或属性("input [name ='rate']")也没有'input#rate'而不是文档.

$('input#rate').on(function() {
Run Code Online (Sandbox Code Playgroud)

这是为什么?

包含在头部的jQuery是:

<script src="/assets/jquery-1.12.3.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

Tus*_*har 6

on() 接受事件名称作为第一个参数.

由于没有调用事件#rate,以下内容将不起作用.

$(document).on('#rate', function() {
Run Code Online (Sandbox Code Playgroud)

使用

$(document).on('keyup', '#rate', function() {
               ^^^^^^^                         : Event name here
Run Code Online (Sandbox Code Playgroud)