2010-05-17 2 views
0

Есть ли ограничение на сложность селекторов, которые могут использоваться с делегатом в jQuery 1.4.2?Сложные селекторы с делегатом jQuery

Это работает для меня:

$('.activeTabsList').delegate('.activeTabsListItem', 'click', 
function() { 
    alert('here'); 
}); 

Это не работает:

$('.activeTabsList').delegate('.activeTabsListItem:not(.selected)', 'click', 
function() { 
    alert('here'); 
}); 

Как вы можете предположить, есть только один пункт, в то время, которое имеет выбранный класс. Когда я нажимаю другие вкладки, мой обработчик делегатов все еще не запускается.

ответ

3

Код, который у вас есть, you can see a demo here. Убедитесь, что ваш селектор совпадает, как вы думаете, это, скорее всего, проблема ... .delegate() сам обрабатывает этот случай.

Обычно это происходит в результате чего-то вроде этого, чрезмерно назначая selected класс:

$(".activeTabsListItem").click(function() { 
    $(".activeTabsListItem").addClass("selected"); //should have been $(this) 
}); 
+0

Спасибо - только убедившись, что я не пытался сделать что-то неподдерживаемый, прежде чем я действительно стараюсь смотреть на него Глубже. Ни одна из демонстраций не охватывает ничего, кроме простых селекторов. Я никогда не видел jsFiddle, но это довольно приятный инструмент –

+0

+1 для ответа .... если бы я мог дать другой для ссылки на jsFiddle, я бы ... хороший инструмент! –

+0

Моя проблема закончилась тем, что я использую это с вкладками ui. Это срабатывает, поэтому моя вкладка всегда выбирается к моменту моего события. –