Функция для нужного блока
Здравствуйте. Понимаю, что вопрос глупый. Нагуглить не могу, причиной тому не могу правильно сформулировать вопрос. Ближе к делу.
$('.openli').on('click', function(){ $('.openli').hide(); $('.openall').show(300); $('.closeli').show(); В блоке у меня, как вы поняли, список. Проблема в том, что есть необходимость создать несколько блоков с названием "openall". При клике начинают открываться все блоки, а мне необходимо чтобы открывался только блок, на которой был совершён клик. Понимаю,что как-то необходимо использовать this, но как... |
$(this) |
С горем пополам задачу решил так, не знаю насколько валидный код, но он работает...
$('.openli').click(function() { $(this).hide(); }, function(){ $(this).parent().find('.openall').show(300); $(this).parent().find('.closeli').show(300); }); Понял, что без предоставления кода HTML неправильно писать на форум, исправлюсь. ЕЩЕ ВОПРОС: Пока лазил по форумам, нашел код: $('p', this).show(); Объясните, пожалуйста, конструкцию $('p', this). Онa будет отличаться чем-то от $('p'); $(this)? |
смотрите пример
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script src="https://code.jquery.com/jquery-3.3.1.min.js"></script> </head> <body> <div>00 <p>4</p> </div> <div>00 <p>4</p> </div> <script> $('div').click(function(){ $('p', this).hide(); }); </script> </body> </html> a $(this) бы скрыл div вместе с p на счет вашего кода, он не совсем коректный строку 7-8 можно объединить! .parent().find('.closeli') - можно заменить на .siblings('.closeli'), если не сработает значит удалить .parent() |
Цитата:
|
Цитата:
$(this).find('p').show(); Де быстрее работает и более понятна... |
Всем спасибо за отклики!
Цитата:
$(this).find('p').show(); имеет краткую форму записи? $('p', this).show(); |
floody,
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 18:49. |