jquery - 使用 jQuery 将函数惰性绑定(bind)到多个事件

标签 jquery events dynamic bind

场景如下:我有一组按钮,我想在单击它们时将其绑定(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/

相关文章:

javascript - 如何在时间到达特定时间时触发功能

javascript - 如何检测正在播放的 Flash 视频的时间

c - linux上的动态链接库

c# - 触发一个事件而不订阅它

PHP - 动态页面 - 为每个动态页面使用单独的 CSS 文件

c - 为什么这段代码会抛出段错误?

jquery - 返回嵌入 YouTube 当前时间

java - 从java服务器获取pdf页面,并嵌入到现有的html中

jquery - 为什么我的 jquery 回调提前触发?

c# - 为什么我的自定义 OnLoaded 事件会收到 "Object reference not set to an instance of an object"?