-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

您可以使用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 回答
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]'
});

你为什么用身份证?如果它是由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 回答