将函数绑定到多个div的最佳方法是什么?
$('#trigger1').change(function(){
// same code
});
$('#trigger3').change(function(){
// same code
});
答案 0 :(得分:6)
使用class (imo是最好的方法)
<div class="trigger"></div>
<div class="trigger"></div>
$('.trigger').change(function(){
});
或者这样做
$('#trigger1,#trigger3').change(function(){
});
答案 1 :(得分:2)
您可以在同一个函数调用中包含多个ID:
$('#trigger1, #trigger3').change(function(){
// code goes here
});
或者你可以给他们同一个班级,例如triggerClass然后调用它:
$('.triggerClass').change(function(){
// code goes here
});
答案 2 :(得分:2)
为这些div添加一个公共类名
<div class="myClass" id="trigger1">
</div>
<div class="myClass" id="trigger2">
</div>
这是脚本
$(".myClass").click(function(){
// your code
});
答案 3 :(得分:1)
$('#trigger1, #trigger3').change(some_function);
Or:
$('#trigger1').add('#trigger3').change(some_function);
答案 4 :(得分:1)
只需将相同的类应用于所有元素,然后编写
$('.classname').change(function(){
});
答案 5 :(得分:1)
你可以使用
$('#trigger1, #trigger3').change(function(){
same code
});
将触发器分组
答案 6 :(得分:1)
添加一个公共类:
<div class="rowTrigger">trigger 1</div>
<div class="rowTrigger">trigger 2</div>
脚本
$(function(){
$("body").on("click", ".rowTrigger", function(e){
e.preventDefault();
var row = $(this); //row element
});
});
每个“rowTrigger”将触发“click”处理程序,这可以更改为其他或多个事件。看到 http://api.jquery.com/on/了解更多细节。 例如,可以通过将“body”更改为“table”来更改所处理事件的范围,因此只有在单击表中的“div”行时才会触发。
更简单的说,它可以写成(点击'点击'和'悬停'...但你明白了):
$("div.rowTrigger").on("click hover", function(e){
e.preventDefault();
var row = $(this); //row element
//some extra code
});