Функция для нужного блока
Здравствуйте. Понимаю, что вопрос глупый. Нагуглить не могу, причиной тому не могу правильно сформулировать вопрос. Ближе к делу.
$('.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, время: 06:31. |