场景如下:我有一组按钮,我想在单击它们时将其绑定(bind)到相应的功能。这些按钮的 id 与其对应功能的名称相同。我可以这样做:
$("#kick").click(kick);
$("#push").click(push);
$("#shove").click(shove);
但我很懒,并且想更懒地做这件事(这是我的本性)。由于按钮全部包含在 block 元素中,我想做这样的事情:
$("#button_holder > span").each(function () {
var doThis = this.id;
$(this).click(doThis);
});
除非那不起作用。有什么建议吗?
最佳答案
像其他回答者一样,我不确定这是“真正的”懒惰(如程序员的美德),但只有你知道你的实现细节。
如果您确实想做这样的事情,您可以使用一个对象来存储您的特定函数,然后使用字符串来查找它们:
var myFunction = {
kick: kick,
push: push,
shove: shove
};
$("#button_holder > span").each(function () {
var doThis = this.id;
$(this).click(myFunction[doThis]);
});
或者作为匿名函数:
var myFunction = {
kick: function() { /*do kick */ },
push: function() { /*do push */ },
shove: function() { /*do shove */ }
};
$("#button_holder > span").each(function () {
var doThis = this.id;
$(this).click(myFunction[doThis]);
});
关于jquery - 使用 jQuery 将函数惰性绑定(bind)到多个事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/396260/