-1

スクリプトにjQueryプラグインがあり、ここからダウンロードしたhtmlの要素を表示および非表示にします

したがって、私のスクリプトでは、次のように div を表示および非表示にします。

<div class="show" rel="#hild<?php echo $r[id]; ?>">
   <button class="action">
        Respond with a new comment
   </button>
</div>

このボタンをクリックすると、次の div が表示されます。

 <div id="hild<?php echo $r[id]; ?>" style="display:none;">
    <form method="post" name="form">
       <textarea rows="5" cols="35" name="texttcons" id="texttcons"></textarea>
    </form>
 </div>

したがって、私の問題は、そのボタンをクリックして他の div を表示したときに、アニメーションの完了後にテキストエリアにフォーカスする必要があることです。

解決策を教えてください。

4

2 に答える 2

0

またはhttp://www.mtslo.bplaced.com/jquery/danawoodman-jquery-showhide-7a5c5fd/#example-5

$('#hild<?php echo $r[id]; ?>').showhide({
    default_open: false,
    target_obj: '$obj.parent().next()',
    focus_target: '$target.find("input")[0]'
});

なぜIDを使用しているのですか?それがphpによって生成された場合は?なぜクラスを使用しないのですか?

$('.ex-2').showhide({
    default_open: false,
    target_obj: '$obj.parent().next()',
    focus_target: '$target.find("input")[0]'
});

およびhtml:

<ul>
    <li>
        <a href="#" title="Toggle the span" class="ex-2">Toggle item 1</a>
        <span><form>label <input /></form></span>
    </li>
    <li>
        <a href="#" title="Toggle the span" class="ex-2">Toggle item 2</a>
        <span><form>label <input /></form></span>
    </li>
    <li>
        <a href="#" title="Toggle the span" class="ex-2">Toggle item 3</a>
        <span><form>label <input /></form></span>
    </li>
</ul>

アップデート!

ワーキングjsfiddle

于 2012-07-24T13:30:11.087 に答える
0

使用できますtrigger()

$('#hild textarea').trigger('focus')

slideToggle()そのプラグインの代わりに、次のメソッドを使用できます。

一致した要素をスライド モーションで表示または非表示にします。

$('.show').click(function(){
   var id = $(this).attr('rel')
   $(id).slideToggle('slow', function(){
       $(id).find('textarea').trigger('focus')
   })
})
于 2012-07-24T13:24:05.457 に答える