这是场景:我有一组按钮,我想在点击时绑定到相应的功能.这些按钮的ID与其相应功能的名称相同.我能做到这一点:
$("#kick").click(kick); $("#push").click(push); $("#shove").click(shove);
但我很懒,想更懒惰地做这件事(就我的本性而言).由于按钮都包含在块元素中,我想做这样的事情:
$("#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]); });