我想获得发射警报的课程
问题是<i>
的所有类都会在
trigger('click')
,我只是想让课程使用
这是一个类main
HTML
<i class="main mainBack another another2 another3"></i>
Jquery的
$(document).on('click','.main, .mainBack', function(e) {
alert(e.target.className);
});
$('.main').trigger('click');
的jsfiddle
答案 0 :(得分:4)
事件处理程序绑定到不属于className
的元素,因此e.target.className
返回元素的所有classNames。
由于您使用的是trigger
方法,因此您可以将自定义数据传递给处理程序:
$(document).on('click','.main, .mainBack', function(e, data) {
if (data === 'main') {
// ...
}
});
$('.main').trigger('click', ['main']);
在手动触发事件时使用上述代码段,处理程序的第二个参数为main
。
另一种选择是使用jQuery .hasClass()
方法来检查某个类名的存在。
if ( $(this).hasClass('main') ) {
// ...
}
答案 1 :(得分:0)
我个人认为你应该为点击目标添加属性:
<i class="main mainBack another another2 another3" data-action="DoSomething"></i>
<i class="main mainBack another another2 another3" data-action="DoSomethingElse"></i>
然后在你的JavaScript中:
$(document).on('click','.main, .mainBack', function(e) {
if (e.target.attr("data-action") == "DoSomething") {
...
} else if (...)
});