Jquery 如何在多个选择器上为多个事件处理程序执行相同的函数?
在这里,我调用了三个元素Jquery 如何在多个选择器上为多个事件处理程序执行相同的函数?,jquery,Jquery,在这里,我调用了三个元素myFunc()像这样: $('table').on('click', 'a', function() { myFunc(); }); $('.myClass').on('hover', 'p', function() { myFunc(); }); $('select').on('change', function() { myFunc(); }); 是否有一种方法可以连接所有多个选择器的所有处理程序以执行相同的函数,以便我能够调用myFunc(
myFunc()代码>像这样:
$('table').on('click', 'a', function() {
myFunc();
});
$('.myClass').on('hover', 'p', function() {
myFunc();
});
$('select').on('change', function() {
myFunc();
});
是否有一种方法可以连接所有多个选择器的所有处理程序以执行相同的函数,以便我能够调用myFunc()编码>一次而不是三次?不,不是真的。但是,要获得更清晰的代码,您应该使用:
$('table').on('click', 'a', myFunc());
$('.myClass').on('hover', 'p', myFunc());
$('select').on('change', myFunc());
对于同一事件,您可以使用多个选择器,但对于不同的事件,您必须使用不同的选择器,尽管您可以使用第一种方法,但单击将在更改事件之前触发
$('table a,.myClass p,select')。在('click change',function()上{
myFunc();
});
$('select')。在('change',function()上{
myFunc();
});
函数myFunc(){
console.log('clicked')
}
头
我的班级
1.
2.
$('table')。在('click','a',function()上{
myFunc(“a”);
});
$(“.myClass”).hover(函数(){
myFunc(“p”);
});
$('select')。在('change',function()上{
myFunc(“选择”);
});
var myFunc=函数(类型){
log(键入“标记已调用”);
};代码>
表格{
字体系列:arial,无衬线;
边界塌陷:塌陷;
宽度:100%;
}
运输署,
th{
边框:1px实心#dddddd;
文本对齐:左对齐;
填充:8px;
}
tr:n个孩子(偶数){
背景色:#dddddd;
}
示例表
标签
P标签
选择标签
玛丽亚·安德斯
沃尔沃汽车
萨博
梅赛德斯
奥迪
您可以构建您的事件:)
让myFuncObjects={
“表”:数组(
“点击”,
“a”
),
“.myClass”:数组(
"悬停",,
“p”
),
“选择”:数组(
“改变”
),
};代码>
function buildEvent(myFuncObjects){
for (var key in myFuncObjects) {
let childSel = myFuncObjects[key][1] ? myFuncObjects[key][1]+', ': '';
$(key).on(myFuncObjects[key][0], childSel, function(){
myFunc();
})
}
}
buildEvent(myFuncObjects);
我刚刚根据您的要求制作了一个片段,希望它与您的要求相关,并希望它能帮助您。谢谢!这是我没有添加的演示。