2010-07-18 159 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