JQuery将事件分配给按钮

use*_*903 3 javascript jquery onclick buttonclick onclicklistener

我有50个动态生成的HTML按钮,如下所示:

<input type="button" id="btn1" name="myButton" value="Click Me" />
<input type="button" id="btn2" name="myButton" value="Click Me" />
:
:
:
<input type="button" id="btn50" name="myButton" value="Click Me" />
Run Code Online (Sandbox Code Playgroud)

哪个是使用jQuery将click事件分配给所有按钮的最佳方法?

通过使用id或使用name属性?

mar*_*nas 6

事件监听器会耗费内存.您必须仔细考虑如何实现侦听器.

1.直截了当的方式:

不要使用它

如果每个按钮的行为相同,请使用以下类:

$(".btn").click(function() {
    // Do something
});
Run Code Online (Sandbox Code Playgroud)

如果每个按钮的行为不同,请将事件分配给不同的#ID

$("#btn1").click(function {
    // Do something
});
Run Code Online (Sandbox Code Playgroud)

2.使用.on():

jQuery 1.7引入了.on()方法,它将所有侦听器包装到1个方法中.

$("button").on("click", function() {
    // Do something
});
Run Code Online (Sandbox Code Playgroud)

但是,我们仍然在页面上绑定许多侦听器.

3.使用包装器(使用它!):

用div包裹你的按钮并为它创建一个监听器.

$("#wrapper").on("click", "button", function() {
    // Do something
});
Run Code Online (Sandbox Code Playgroud)

有用的资源:

  • 我并不是对您链接到的性能比较提出异议,但我想指出它**仅**比较绑定事件所需的时间,而不是处理它们。它也与比较内存无关。我并不是对任何事情提出异议,我只是想添加一点信息。 (2认同)