【问题标题】:How can I make a text area focused after the completion of a jQuery animation?如何在 jQuery 动画完成后使文本区域聚焦?
【发布时间】:2012-07-24 13:19:27
【问题描述】:

我的脚本中有一个 jQuery 插件,它显示和隐藏 html 中的任何元素,它是从 here 下载的

所以在我的脚本中,它显示和隐藏了一个 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 时,需要在动画完成后将 textarea 聚焦。

请告诉我解决方法。

【问题讨论】:

  • 您想将焦点放在隐藏 div 内的 textarea 上?
  • @wirey 他的意思是,当单击视图按钮时显示隐藏的 div 时,应该聚焦 textarea..
  • 不,隐藏的 div 将在单击该按钮后显示。
  • 能否也提供 jquery 给我们?
  • 如果 textarea 只是一个,只需使用它的 id 来聚焦。如果你有多个,那么在 POST 之后如何处理它们,因为它们具有相同的名称?

标签: jquery jquery-plugins show-hide


【解决方案1】:

你可以使用trigger()

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

您可以使用slideToggle() 方法代替该插件:

通过滑动显示或隐藏匹配的元素。

$('.show').click(function(){
   var id = $(this).attr('rel')
   $(id).slideToggle('slow', function(){
       $(id).find('textarea').trigger('focus')
   })
})

【讨论】:

  • 问题也在这里。我将它与 php 一起使用。所以我的命名为:
  • @NavedAhmed 所以你有几个 div 标签,你可以试试更新的答案。
【解决方案2】:

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>

更新!

Working jsfiddle

【讨论】:

猜你喜欢
相关资源
最近更新 更多
热门标签