2010-07-18 121 views
2

我在上下滑动项目中的类时遇到问题,并希望得到任何帮助。jQuery选择器问题

HTML:

<input type="text" class="text" name="left" style="width:100%;"/> 
<input type="submit" class="btn" value="Submit" /> 
<div class="regler">Regler</div> 

的jQuery:

$("input.text").focus(function() { 
    $(this).animate({width:'80%'},'slow',function(){ 
     $(this).next('input.btn').fadeIn('Slow'); 
    }); 
    $(this).next(".regler").slideDown('Slow'); 
}); 
$("input.text").blur(function() { 
    $(this).next('input.btn').fadeOut('Slow',function(){ 
     $(this).prev().animate({width:'100%'},'slow'); 
    }); 
    $(this).next(".regler").slideUp('Slow'); 
}); 

CSS:

.regler { 
display: none; 
} 

input.btn { 
display: none; 
} 

jQuery的位于脚本代码的HTML后。

$(this).next(".regler").slideDown('Slow');$(this).next(".regler").slideUp('Slow');是唯一不行的行。

感谢您的答案,维克多。

+1

的CSS缺失,您可以看到这里的更新: //jsfiddle.net/U2MPy/1/ – 2010-07-18 04:31:49

+0

我的不好,我没有意识到'regler'应该滑动:P – Kobi 2010-07-18 04:35:51

+0

最终的和固定的效果工程nicley和它看到这里http://jsfiddle.net/jzujY/ – 2010-07-18 04:41:24

回答

2

next只是寻找下一个元素。由于this是您的上下文中的文本框,因此它没有下一个.regler。如果这些标签在父容器挤包,试试这个:

$(this).siblings(".regler").slideUp('Slow'); 

或者,如果你有很多套,如果输入:HTTP:

$(this).next().next(".regler").slideUp('Slow'); 
+0

完美运作!感谢您的简单而快速的回答:) – 2010-07-18 04:33:29