【问题标题】:Why can't I focus a control that I reveal with slideDown()?为什么我不能集中使用 slideDown() 显示的控件?
【发布时间】:2008-11-21 17:13:15
【问题描述】:

我想在您单击按钮时显示一个带有输入的 div,并设置其焦点。

如果我使用 show(),它可以工作,但如果我使用 slideDown()动画完成后焦点会丢失。我怎样才能防止这种情况发生?

示例代码:

$("document").ready(function(){
    $("#MyButton").click(function(e){
        e.preventDefault();
        $(".SlidingDiv").slideDown();
        $("#MyInput").focus();
    });
});

<input type="button" value="Click Me" id="MyButton" />
<div class="SlidingDiv" style="display:none;"><input type="text" id="MyInput" /></div>

【问题讨论】:

    标签: jquery


    【解决方案1】:

    试试这个:

    $(function(){
        $("#MyButton").click(function(e){
            e.preventDefault();
            $(".SlidingDiv").slideDown(function(){
                // Callback function - will occur when sliding is complete.
                $("#MyInput").focus();
            });
        });
    });
    

    【讨论】:

    • 这在 3 个实例中有 2 个对我有用,但在第 3 个实例中,执行 $("#MyInput").focus();使面板消失或更可能将其重新定位到另一个容器中的站点之外。我多么讨厌 Javascript
    【解决方案2】:

    我认为只有在 DIV 完全停止滑动后才能聚焦元素?
    不确定...

    【讨论】:

      猜你喜欢
      • 2015-05-26
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 2011-04-04
      • 2020-11-12
      • 1970-01-01
      • 2018-12-07
      • 1970-01-01
      相关资源
      最近更新 更多