当前位置:  开发笔记 > 前端 > 正文

使用jQuery对多个事件进行延迟绑定

如何解决《使用jQuery对多个事件进行延迟绑定》经验,为你挑选了1个好方法。

这是场景:我有一组按钮,我想在点击时绑定到相应的功能.这些按钮的ID与其相应功能的名称相同.我能做到这一点:

$("#kick").click(kick);
$("#push").click(push);
$("#shove").click(shove);

但我很懒,想更懒惰地做这件事(就我的本性而言).由于按钮都包含在块元素中,我想做这样的事情:

$("#button_holder > span").each(function () {
    var doThis = this.id;
    $(this).click(doThis);
});

除此之外不起作用.有什么建议?



1> Adam Bellair..:

和其他的回答者一样,我不确定这是"真正的"懒惰(就像程序员的优点一样),但只有你知道你的实现细节.

如果你真的想做这样的事情,你可以使用一个对象来存储你的特定函数,然后使用字符串来查找它们:

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]);
});

推荐阅读
Life一切安好
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有