2014-01-21 119 views
0

我遇到了jquery焦点问题。jquery递归集中在文本框无法正常工作

因此,这里是我想要完成的任务:

为了解决即占位符的问题,我想集中到一个元素,然后对其进行模糊处理,使占位符出现。我目前正在使用它的模式形式。

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

到目前为止,我已经缩小了焦点问题的焦点,而不是被$(“#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。

任何想法家伙?

回答

0

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

+0

嗨@saman感谢您的快速反应。我之前已经尝试过触发器,但结果是一样的。只有第一个焦点在第二个循环中执行。 – Ikoy

+0

更新:尝试用getElementById()。焦点替换.focus。它不工作。 – Ikoy