0

私は次のことをしようとしています:

<div class="messageNewComment">
<form style="margin:0px;" action="cible.php" method="post">

<textarea class="content"></textarea>
<div class="button_block">
<input type="submit" class="button" value=" Partager "/>
<input type="submit" class="cancel" value=" Annuler " />
</div>

</form>
</div>

textareaにフォーカスすると、textareaが大きくなり、jqueryを使用してbutton_blockが表示されます。上記のようなセクションが1つしかない場合は正常に機能しますが、複数のコメント領域があるので、適切なbutton_blockを表示したいと思います...どうすればそれを実現できますか?

これが私のjqueryコードです:

$(function() 
{
$(".content").focus(function()
{
$(this).height("50px"); //animate({"height": "50px",}, "fast" );
if ($(this).height() == 50) {
$(".button_block").slideDown("fast");
}
return false;
});

$(".cancel").click(function()
{
/*if ($(".content").height() != 50) {*/
$(".content").height("20px"); //animate({"height": "20px",}, "fast" );
$(".button_block").slideUp("fast");
return false;
//}
});

今のところ、ページのすべてのbutton_blockが表示されます...そのため、あまり便利ではありません;)

何か案が ?

どうもありがとう!

ゴティエ!

4

4 に答える 4

2

交換してみてください

$(".button_block").slideDown("fast");

$(this).next(".button_block").slideDown("fast");

セレクターはクラスを持つすべての要素を選択しますbutton_blockが、フォーカスのあるテキスト領域に続くボタンブロックが必要です。したがって、jquerynextセレクターを使用できます。

同じロジックを使用して、ボタンをスライドアップする必要があります。

$(this).parent(".button_block").slideUp("fast").prev(".content").height("20px");

ここでは、セレクターと前のセレクターを使用できます

于 2010-12-23T07:57:54.073 に答える
1

div は兄弟であるため、 .next でうまくいくはずです:

$(".content").focus(function()
{
$(this).height("50px"); //animate({"height": "50px",}, "fast" );
if ($(this).height() == 50) {
$(this).next(".button_block").slideDown("fast");
}
return false;
});
于 2010-12-23T07:54:24.827 に答える
0

でツリーをトラバースしますnext()

$(".content").focus(function(){
    $(this).height(50).val('').next(".button_block").show();
  return false;
});
于 2010-12-23T07:58:47.213 に答える
0

ur divがtextareaの直後にある限り、keegan3dの答えは正しいです。将来、他の要素がそれらの間にある場合、uはこれを使用できます:

$(function() 
{
$(".content").focus(function()
{
$(this).height("50px"); //animate({"height": "50px",}, "fast" );
if ($(this).height() == 50) {
$(this).nextAll(".button_block:first").slideDown("fast");
return false;
});
于 2010-12-23T08:00:18.110 に答える