【发布时间】:2016-12-15 20:23:54
【问题描述】:
此代码的唯一区别是#position1,2,3。
$('#upgradeSkillsBar').one('click', '#position1', function(){
console.log(object);
removeSkillButton(object);
addSkillButton(skillList[0]);
removeRadialSubMenu();
});
$('#upgradeSkillsBar').one('click', '#position2', function(){
console.log(object);
removeSkillButton(object);
addSkillButton(skillList[1]);
removeRadialSubMenu();
});
$('#upgradeSkillsBar').one('click', '#position3', function(){
removeSkillButton(object);
addSkillButton(skillList[2]);
removeRadialSubMenu();
});
我想把它写在函数看起来像这样的地方。
$('#upgradeSkillsBar').one('click', '#position1', '#position2', '#position3' function(){
console.log(object);
removeSkillButton(object);
addSkillButton(skillList[0]);
removeRadialSubMenu();
});
有没有办法做到这一点?因为目前我尝试它时它不起作用。我对 jquery 不是很好。让这段代码更高效的最佳方法是什么?
【问题讨论】:
-
不,我必须使用 .one,因为我要更新 DOM 中的多个元素。按下后我必须立即删除监听器。
-
组合选择器的方法是在单个选择器字符串中使用逗号:
'#position1, #position2, #position3' -
我真的不喜欢看到不必要的代码重复。有没有办法让你修改 HTML?