我有我想要分配到比类的更多的单击事件。 这样做的原因是,我使用的是在我的应用程序不同的地方该事件,并单击按钮在不同的地方不同的造型。
我想要的是像$('标签” .tag2' ),这当然不工作。
$('.tag').click(function (){
if ($(this).hasClass('clickedTag')){
// code here
}
else {
// and here
}
});
方法#1
function doSomething(){
if ($(this).hasClass('clickedTag')){
// code here
}
else {
// and here
}
}
$('.tag1').click(doSomething);
$('.tag2').click(doSomething);
// or, simplifying further
$(".tag1, .tag2").click(doSomething);
方法2
这也将工作:
$(".tag1, .tag2").click(function(){
alert("clicked");
});
小提琴
我更喜欢一个单独的函数(方法#1)如果有一个机会,逻辑将被重新使用。
另见我如何选择与多个类的元素? 对同一项目处理多类。
您可以一次使用jQuery像这样选择多个类:
$('.tag, .tag2').click(function() {
var $this = $(this);
if ($this.hasClass('tag')) {
// do stuff
} else {
// do other stuff
}
});
给予2个参数的$()函数,范围选择这样$('.tag', '.tag2')
查找tag
与类元素中tag2
。
就像这样:
$('.tag.clickedTag').click(function (){
// this will catch with two classes
}
$('.tag.clickedTag.otherclass').click(function (){
// this will catch with three classes
}
$('.tag:not(.clickedTag)').click(function (){
// this will catch tag without clickedTag
}
$('.tag1, .tag2').on('click', function() {
if ($(this).hasClass('clickedTag')){
// code here
} else {
// and here
}
});
要么
function dothing() {
if ($(this).hasClass('clickedTag')){
// code here
} else {
// and here
}
}
$('.tag1, .tag2').on('click', dothing);
要么
$('[class^=tag]').on('click', dothing);
你有没有试过这样:
function doSomething() {
if ($(this).hasClass('clickedTag')){
// code here
} else {
// and here
}
}
$('.tag1, .tag2').click(doSomething);
$('[class*="tag"]').live('click', function() {
if ($(this).hasClass('clickedTag')){
// code here
} else {
// and here
}
});