jQuery输入按钮单击事件监听器

Bob*_*Bob 31 javascript jquery onclick button javascript-events

全新的jQuery.我试图在我的页面上为以下控件设置一个事件监听器,当点击它时会显示一个警告:

<input type="button" id="filter" name="filter" value="Filter" />
Run Code Online (Sandbox Code Playgroud)

但它没有用.

$("#filter").button().click(function(){...});
Run Code Online (Sandbox Code Playgroud)

如何使用jQuery为输入按钮控件创建事件监听器?

gdo*_*ica 61

首先,button()是一个jQuery ui函数来创建一个与jQuery核心无关的按钮小部件,它只是按钮的样式.
因此,如果你想使用小部件添加jQuery ui的javascript和CSS文件,或者删除它,如下所示:

$("#filter").click(function(){
    alert('clicked!');
});
Run Code Online (Sandbox Code Playgroud)

另一件可能导致问题的原因是,如果您没有等待输入被渲染并在输入之前编写代码.jQuery具有ready函数,或者它的别名$(func)在DOM准备好后执行回调.
用法:

$(function(){
    $("#filter").click(function(){
        alert('clicked!');
    });
});
Run Code Online (Sandbox Code Playgroud)

因此,即使订单是这样,它也会起作用:

$(function(){
    $("#filter").click(function(){
        alert('clicked!');
    });
});

<input type="button" id="filter" name="filter" value="Filter" />
Run Code Online (Sandbox Code Playgroud)

DEMO

  • @adeneo.是的......它们存储在一个巨大的数据库中,称为我生病和慢脑:) (4认同)
  • 我只想在一分钟内写一下这个,你准备好了这些答案还是什么? (2认同)
  • 是的,我明白了.就像你说的那样:`这确保DOM在函数运行之前就已经准备就绪,所以如果函数写在按钮上面并不重要,它会等到按钮加载然后附加它点击回调. (2认同)

Dan*_*nte 5

$("#filter").click(function(){
    //Put your code here
});
Run Code Online (Sandbox Code Playgroud)