2013-08-22 2 views
1

Это не делает ничего:JQuery щелчок мыши не работает, но переключатель делает

$("#nav li ul li").click(function(){ 
    $(this).find('ul:first').css({ 
    visibility: "visible" 
    }); 
}); 

Это работает (отображение и скрытие):

$("#nav li ul li").toggle(function() { 
    $(this).find('ul:first').css({ 
    visibility: "visible" 
    }); 
}, function() { 
    $(this).find('ul').css({ 
    visibility: "hidden" 
    }); 
}); 

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

+1

Пожалуйста, ваши HTML, и всякий раз, когда это возможно, также включать в себя ссылку jsFiddle.net , – j08691

+3

О, и использование toggle(), которое вы пытаетесь удалить, было недавно удалено из jQuery. – j08691

+0

Нужно больше кода, чтобы помочь, но обычно предпочитаете использовать .on ('click', function() {}) – carter

ответ

1

Попробуйте этот код:

$("#nav li ul li").click(function(){ 
    $(this).find('ul').first().css("visibility","visible"); 
}); 
+1

Можете ли вы рассказать о том, как этот образец кода приводит к другому поведению, чем первый пример опроса? –

+0

@ FrédéricHamidi Я использую первый как функцию, а OP использует его в селекторе. Во многих случаях, как и в поиске: во-первых, это невозможно (во многих случаях). Это мой личный опыт. –

+0

Вот почему я спросил, нет никакой функциональной разницы между применением селектора ': first' и цепочки в метод' first() '. Теоретически, если первый образец опроса не работает для него, так будет и ваш код. –

0

CSS

.ghost{visibility:hidden;} 

JQuery

$("#nav li ul li").click(function() { 
    $(this).find('ul:first').toggleClass('ghost') 
}); 
Смежные вопросы