Jquery递归关注文本框无法正常工作

时间:2014-01-21 08:34:50

标签: javascript jquery html modal-dialog focus

我在使用jquery焦点时遇到了麻烦。

所以这就是我想要完成的事情:

要解决ie占位符问题,我想将焦点放在一个元素上,然后将其模糊以使占位符显示。我目前正在以模态形式使用它。

它在第一次加载模态窗体时工作正常,但关闭窗体并再次打开它似乎不起作用。

到目前为止,我已经缩小了这个问题的重点,没有被$(“#element”)。focus()多次触发。

这是一个解释问题的小提琴

http://jsfiddle.net/Ere2N/1/

JS:

var i = 5;

while(i>0){
    focusMe();
    i--;
}

function focusMe(){
    setTimeout(function(){
        $('#text1').focus().queue(function(){
        setTimeout(function() {
            $('#text2').focus().queue(function(){
                setTimeout(function(){$('#text1').focus();},100);
                setTimeout(function() {
                    $('#text2').focus();
                }, 300);
            })
        }, 300);
        });                
    },100);
}

$("#text1").focus(function(){
    $("#count1").html(($("#count1").html()*1) + 1);
});

$("#text2").focus(function(){
    $("#count2").html(($("#count2").html()*1) + 1);
});

HTML:

<input type="text" id="text1" />
<input type="text" id="text2" />
<input type="text" id="text3" />

<div id="count1">0</div>
<div id="count2">0</div>

它表现得很有趣..

第一次执行该功能是好的。

然而,倒数第二次执行仅执行第一个#text1焦点,从而产生6:2的结果统计数据。

任何想法的人?

1 个答案:

答案 0 :(得分:0)

.focus只运行您在焦点事件上编写的代码 使用“触发器”或使用getElementById()。focus