jQuery组合委托语句

时间:2014-04-11 10:18:29

标签: javascript jquery

我在同一个JS文件的两个位置有以下jQuery代码;

$("#myGrid").delegate(".icon-right", "click", function() {
//Some code
});

$("#myGrid").delegate(".icon-down", "click", function() {
//Some code
});

所以差异就是我在icon-down / icon-right

上听点击事件

是否可以优化/合并这两个陈述?

4 个答案:

答案 0 :(得分:0)

将两者结合起来

$("#myGrid").delegate(".icon-right", "click", function () {
    //Some code
}).delegate(".icon-down", "click", function () {
    //Some code
});

在jQuery 1.7之后使用.on()

答案 1 :(得分:0)

是的,你可以这样做:

$("#myGrid").delegate(".icon-right, .icon-down", "click", function () {
    if(this.className === 'icon-right'){ // some code}
    else if(this.className === 'icon-down'){ // some code}
});

如果您使用的是jquery 1.7+,那么可以使用.on() switch尝试使用$("#myGrid").on("click", ".icon-right, .icon-down", function () { switch(this.className){ case 'icon-right': //some code break; case 'icon-down': // some code break; } });

{{1}}

答案 2 :(得分:0)

使选择器匹配:

$("#myGrid").delegate(".icon-right,.icon-down", "click", function() {
  //Some code
});

答案 3 :(得分:0)

尝试使用多重选择器

所有元素的相同功能:

$("#myGrid").delegate('click','.icon-right,.icon-down', function(e){ 
});

不同元素的不同功能:

$("body").delegate('click','.icon-right,.icon-down', function(e){ 

    if      ($(this).is('.icon-right')) { }
    else                              { }

});