2015-04-18 4 views
2

Я пытаюсь выполнить jquery slidetoggle, но у меня возникают проблемы с его запуском. Пожалуйста, проверьте на скрипке. https://jsfiddle.net/2yL2Q/63/JQuery Slide Toggle not triggering

Когда я нажимаю на класс флип, он ничего не делает.

Пример кода

<div class="some-div"> 
<div class="flip">Click to slide the panel down or up</div> 
</div> 
<div class="panel">Hello world!</div> 

<div class="some-div"> 
<div class="flip">Click to slide the panel down or up</div> 
</div> 
<div class="panel">Hello world!</div> 

<div class="some-div"> 
<div class="flip">Click to slide the panel down or up</div> 
</div> 
<div class="panel">Hello world!</div> 

Script

$(document).ready(function() { 
    $(".some-div .flip").click(function() { 
     $(this).next('.panel').slideToggle("slow"); 
    }); 
}); 

ответ

3

Вы пытаетесь выбрать .panel элемент, следующий смежный родственный к щелкнули .flip элемента. Ваша разметка должна будет выглядеть следующим образом для того, чтобы ваш Jquery работать:

<div class="flip">Click to slide the panel down or up</div> 
<div class="panel">Hello world!</div> 

Так эти элементы не являются родственниками в HTML вы предоставили, вы должны пройти через DOM и выберите родительский элемент. Просто используйте .parent() method:

Updated Example

$(".some-div .flip").click(function() { 
    $(this).parent().next('.panel').slideToggle("slow"); 
}); 

В качестве альтернативы, если глубина/вложенность элементов изменяется, можно также использовать .closest() method:

Updated Example

$(".some-div .flip").click(function() { 
    $(this).closest('.some-div').next('.panel').slideToggle("slow"); 
}); 
+0

спасибо. Понял. Могу ли я узнать, где я могу найти этот документ? –

+0

@DroidBeginner Yep - Я только что связался с обоими упомянутыми способами в ответе. Вы можете посмотреть документацию API jQuery, чтобы просмотреть все методы - http://api.jquery.com/ –