我有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等从不混合,是否会有一些原生调用呢?仅供参考,$()内的字符串最终可能是一个变量。感谢
答案 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..
});