当前位置 : 主页 > 网页制作 > JQuery >

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

来源:互联网 收集:自由互联 发布时间:2021-06-15
这是场景:我有一组按钮,我想在点击时绑定到相应的功能.这些按钮的ID与其相应功能的名称相同.我能做到这一点: $("#kick").click(kick);$("#push").click(push);$("#shove").click(shove); 但我很懒,想更
这是场景:我有一组按钮,我想在点击时绑定到相应的功能.这些按钮的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]);
});
网友评论