2013-08-26 3 views
0

Я использую:селектор эксклюзивные CSS в конкретной ситуации

$(".header.nav.nav-user").click(function(){}); 

Но когда я изменить CSS для «.header .nav .disable .nav-user», я не хочу, чтобы вызвать событие щелчка.

Но в этой ситуации $(".header.nav.nav-user") также срабатывает при изменении css на ".header .nav .disable .nav-user".

Как я могу исключить эту ситуацию?

Я попытался, как:

$(".header.nav.nav-user :not(.disable)") 

и

$(".header.nav.nav-user").not(".disable"), 

Но оба раза не удалось получить желаемый результат.

Пожалуйста, скажите мне, как это сделать.

Ценим на вашу помощь! Благодарю.

обновление: ситуация иногда: (я хочу, чтобы вызвать событие щелчка)

<div class="header"> 
    <div class="nav"> 
     <dt class="nav-user"> 
     </dt> 
    </div> 
</div> 

и иногда: (я не хочу, чтобы вызвать событие нажмите)

<div class="header"> 
    <div class="nav"> 
    <dl class="disable"> 
     <dt class="nav-user"> 
     </dt> 
    </dl> 
    </div> 
</div> 

и изменение использует другой javascript, чтобы не изменять этот код.

+0

$ ('отключить.') На ("щелчок", функция.() {return false}); должен сделать трюк. – ninty9notout

+0

Хорошо работает здесь: http://jsfiddle.net/IrvinDominin/6zjP9/, может быть проблема распространения? Является ли потомок элемента div и событие click пузырьком? –

+0

это может быть связано с тем, что ur может записывать .disable-класс вместо того, чтобы отключать ваш код, если он проверяется. ваш класс –

ответ

0

попробовать это

$(".header.nav.nav-user").not(":disable") 
+0

он не работает, так как я ожидаю –

+0

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

0

Вам нужно добавить отключенный атрибут при добавлении класса отключить

Например:

$('.btn').click(function() { 
    alert('clicked'); 
    $('.btn').addClass('disable'); 
    $('.disable').attr('disabled', 'disabled'); 
}); 

Это отключит связь с «отключить 'класс

+0

отключить не отключено, и я думаю, что вы не понимаете мой вопрос .. –

+0

@ Решение SAM верное. Удалите пространство, и оно должно работать нормально. :) Хотя я не думаю, что это сработает, если отключить класс, который он добавил динамически. – achakravarty

0

@dude, вы верны здесь:

$(".header.nav.nav-user :not(.disable)") 

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

$(".header.nav.nav-user:not(.disable)") 

Fiddle

+0

спасибо, но, может быть, я описываю не очень ясно, я обновлю свой вопрос –

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