2010-08-30 3 views
10

Могу ли я сделать что-то вроде ниже, где у меня может быть несколько классов, запускающих событие?Могу ли я иметь селектор нескольких классов в jquery

$('a.red a.blue a.green').click(function(event) 
{ 

}); 
+4

Просто примечание для OP: Классы определяются '.' not': '. ':' обозначает псевдоклассы. –

+0

Да, спасибо, исправлено! – ian

+1

Связанное примечание: синтаксис, который у вас есть ('a.red a.blue a.green'), имеет другое значение как селектор css и jquery. Он выбирает любой элемент 'a' с классом' green', который содержится в элементе 'a' с классом' blue', который сам содержится в элементе 'a' с классом' red'. конечно, это не имеет никакого смысла, когда все они являются «тегами», но это * - полезная концепция в целом. – grossvogel

ответ

18

Да, вы можете использовать запятую в качестве разделителя.

$('a.red, a.blue, a.green').click(function(event) {}); 
0

$('a.red.blue.green') выбирает элементы, которые имеют все эти классы.

$('a.red, a.blue, a.green') выбирает элементы, которые имеют atleast one этих классов.

+1

Для всех этих классов это $ ("a.red.blue.green"). –

3

Несколько иной подход был бы префиксом классы как a.prefix_red, a.prefix_blue, a.prefix_green, а затем использовать селектор подстановочные на него, как:

$("a[class^=prefix_]") 

Преимущество заключается в том, что до тех пор, как вы префикс все ваши «триггер «классы, вам не нужно редактировать jQuery каждый раз, когда вы добавляете новый, а не то, что это будет серьезное изменение в любом случае, но может пригодиться, если вы решите минимизировать свой скрипт, например.

Смежные вопросы