我遇到了jQuery的问题。当点击同一容器div的div one
时,div comment
应该滑动。发生的事情是每个div one
都会向下滑动而不管它们的容器是什么。我该如何解决?我认为这是$ this函数,但我不知道如何实现它。
<script type="text/javascript">
$('.one').hide();
$('.comment').live('click',function() {
if ($('.one').is(':hidden')) {
$('.one').slideDown('slow');
}
});
</script>
<?php
for($i=0;$i<11;$i++) {
?>
<div class='container'>
<a class='comment'>comment</a>
<div class='one'>
<textarea style='width:350px;height:100px'>Type text here</textarea>
</div>
</div>
<?php
}
?>
答案 0 :(得分:2)
在这种情况下(来自提供的信息).live()
不是必需的,您可以使用.click()
。
你的功能主体看起来像这样......
$one = $(this).next('.one'); //select the specific .one div you want
if ($one.is(':hidden')) {
$one.slideDown('slow');
}
您希望仅定位要展示的特定.one
div ...目前您定位的目标每个 .one
div。
答案 1 :(得分:1)
只需使用next()
$('.one').hide();
$('.comment').live('click',function() {
if ($(this).next('.one').is(':hidden')) {
$(this).next('.one').slideDown('slow');
}
});
答案 2 :(得分:0)
尝试:
$('.comment').live('click',function() {
$(this).siblings('.one').slideDown('slow');
});
答案 3 :(得分:0)
<script type="text/javascript">
$('.one').hide();
$('.comment').live('click',function() {
var sameone = $(this).next('.one');
if (sameone.is(':hidden')) {
sameone.slideDown('slow');
}
});
</script>