Правильно скрыть `<div>` с помощью jQuery? - PullRequest
0 голосов
/ 22 августа 2011

У меня есть следующий HTML:

<div class="alert-message success">
  <a class="close" style="display: none; ">×</a>
  <p>Authenticated as Zach.</p>
</div>

И следующий jQuery:

$('.close').click(function(){
  $('.alert-message success').hide('slow');
});

Есть ли что-то принципиально неправильное в сокрытии <div>? Если я спрятал .close, то проблем нет. Я не уверен, почему это не работает.

Ответы [ 3 ]

6 голосов
/ 22 августа 2011

Это должно быть:

$('.close').click(function(){
  $('.alert-message.success').hide('slow');
});

С $('.alert-message success') вы просите JQuery найти класс div .success внутри отдельного класса div alert-message.

2 голосов
/ 22 августа 2011

Всегда предпочитайте , а не Используйте пробелы в именах. Предпочитаю «подчеркивание» или «camelCase». Пространство действует как разделитель.

Когда вы говорите $('.alert-message success') jQuery интерпретирует, что внутри класса 'alert-message' есть HTML-элемент , называемый «success» (т.е. <success>), позволяющий скрыть этот элемент. Следовательно, он не дает правильного вывода, даже если код верен.

2 голосов
/ 22 августа 2011

Селектор недействителен. Уберите «успех» и он должен быть GTG.

Проверьте JSFiddle для подтверждения: http://jsfiddle.net/bP6g4/

...