Jquery焦点函数淡出后的奇怪行为

时间:2011-02-02 08:41:45

标签: jquery focus fadeout

我的html代码包含多个具有唯一ID的表单。这些表单包含一个输入字段和一个锚标记。 Jquery Click事件与锚标记相关联,该标记淡出父标记即表单

问题1。这个问题是。如果有一个空间(插入符号指示)它的工作正常,其他方面它不会。我不知道这是不是一个jquery bug。

$("form[class='multiwords'] :input:visible:enabled:first").focus();
//-------------------------^-------------------------------//

问题2。当删除第一个表单时,焦点不会设置为下一个文本字段,即值 2

只是一个问题。成功将焦点光标设置为opera中textfield的开头,但是设置为在mozilla结束。这是一个浏览器问题吗?

整个代码

<html>
    <head>
        <title>test</title>
        <script type='text/javascript' src='js/jquery-1.4.2.js'></script>
        <script>
            $(window).load(function() {
                jQuery(document).ready(function() {
                    jQuery('.perform').live('click', function(event) {
                        var parentTag = "#"+$(this).parent("form").attr("id");
                        $(parentTag).fadeOut();
                        $("form[class='multiwords'] :input:visible:enabled:first").focus();
                    });
                });
            });
        </script>
        <style type="text/css">
            .perform{
                cursor: pointer;
            }
        </style>
    </head>

    <body>

        <div id="content">
            <form id="f1" class='multiwords' name='f1'>
                <input type=text  class="input multi" id='i1' name=da value='one'><a hred=# class='perform' id='a1'>Rem Form One</a>
            </form>
            <form id="f2" class='multiwords' name='f2'>
                <input type=text  class="input multi" id='i2' name=da value='two'><a hred=# class='perform' id='a2'>Rem Form Two</a>
            </form>
            <form id="f3" class='multiwords' name='f3'>
                <input type=text  class="input multi" id='i3' name=da value='two'><a hred=# class='perform' id='a3'>Rem Form Three</a>
            </form>
        </div>


    </body>
</html>

1 个答案:

答案 0 :(得分:0)

<强>#1: 我建议你使用native focus()方法 -

var input = $("form[class='multiwords'] :input:visible:enabled:first");

if(input.length) {
     input[0].focus();
}

IE在jQuery焦点方法方面存在一些问题。以下是this help topic:

的引用
  

触发对隐藏元素的关注会导致Internet Explorer出错。注意只在没有参数的情况下调用.focus()可见元素。

<强>#2: 关于插入位置,它是一种浏览器行为。我建议你在每个焦点上选择文字。因此会避免它。