2013-07-29 2 views
0

У меня есть кратные их на странице, и я хотел бы только скопировать «поле комментариев» в пределах каждой области (то есть: первый, который он найдет).Slidetoggle next using on click

<div class="comments"> 
<a style="cursor:pointer" onclick="jQuery('.comments-box').slideToggle();">comments</a></span> 
     <div class="add-comment">add</div> 
     <div class="response-form"></div> 
     <div class="comments-box"> 
     a bunch of comments 
     </div> 
</div> 

Однако, это очевидно переключает КАЖДОЕ «поле для комментариев».

Я пробовал onclick="jQuery($(this).next('.comments-box')).slideToggle();", но не повезло.

ответ

0

Изменение разметки, удалить встроенный JavaScript, и добавьте HREF к якорю:

<div class="comments"> 
    <span><a href="#">comments</a></span> 
    <div class="add-comment">add</div> 
    <div class="response-form"></div> 
    <div class="comments-box"> 
     a bunch of comments 
    </div> 
</div> 

Затем сделать это, чтобы сделать каждый комментарий ящик слайд вверх и вниз:

$(function() { 
    $('.comments a').on('click', function(e) { 
     e.preventDefault(); 
     $(this).closest('.comments').find('.comments-box').slideToggle(); 
    }); 
}); 

EDIT:

делает его рядный:

<a onclick="jQuery(this).closest('.comments').find('.comments-box').slideToggle();">comments</a> 
+0

Благодаря @adeneo - так что нет способа сделать это рядный с 'onclick'? – Dave

+0

Конечно, есть, но зачем использовать встроенный javascript, когда его так легко избежать? – adeneo

+0

Истинный :) просто подумал, что я спрошу. Примут через 8 минут. – Dave

0

Попробуйте

$('.comments a').on("click",function(){ 
     $(this).parent().find('.comments-box').slideToggle(); 

     }); 

FIDDLE Demo

+0

Спасибо, идея хотя и использовала его в onclick :) – Dave

+1

, но это переключит все «комментарии», отметив, что OP имеет все те div и теги привязки в одном родителе. – krishgopinath

+0

Нет, он будет переключать только 'a' нажал' comment box'. который протестирован –

0

Вы также можете использовать siblings(). Попробуйте это

$(function() { 
    $('.comments a').on('click', function(e) { 
     e.preventDefault(); 
     $(this).parent().siblings('.comments-box').slideToggle(); 
    }); 
}); 

JSfiddle demo