jquery确定哪个类触发了事件

时间:2014-11-12 05:02:07

标签: jquery

我有3组不同的div,它们都处理不同的菜单选项。我们假设一个包含在class =“class1”中,另一个包含在class =“class2”中等等。

这些课程也互相排斥。

然后假设我有代码:

$('.class1, .class2, .class3').click(function(e){
    //which class was it that triggered this event?
});

有可能找到这个吗?我想我可以为每个实例或this.className使用hasClass() - 但在后一种情况下可能有很多类。再假设class1和class2等从不混合,是否会有一些原生调用呢?仅供参考,$()内的字符串最终可能是一个变量。感谢

3 个答案:

答案 0 :(得分:0)

var className = $(e.target).attr('class');

变量className应该有类名。

答案 1 :(得分:0)

$('.class1, .class2, .class3').click(function(e){
     alert("Was pressed: "+$(this).attr('class'));
});

使用$(this)来获取被调用的元素,你可以使用不同的方法,如hasClass(),addClass(),attr()等。

答案 2 :(得分:0)

似乎没有特定的答案,所以我要编写的内容将满足我的需求:

var menuGroup={
    '.group1':{ /*relevant data*/ },
    '.group2':{ /*relevant data*/ }
}
var triggers='';
for(var i in menuGroup)triggers+='.'+i+', ';
triggers=triggers.replace(/, $/,'');
$(triggers).click(function(e){
    var classes=this.className.split(/\s+/);
    for(var i in classes){
        for(var j in menuGroup){
            if(classes[i]==menuGroup[j].replace(/\./,'')){
                var triggerClass=classes[i];
                break(2);
            }
        }
    }
    //we now have triggerClass..
});
相关问题