Javascript 输入字段的多个默认值

Javascript 输入字段的多个默认值,javascript,jquery,Javascript,Jquery,我想有一个搜索框输入字段,在不对焦时闪烁多个默认值。就像在“纽约”3秒钟,然后是“洛杉矶”3秒钟,等等。或者模拟键入这些内容也不错 我所做的就是这样 但问题是,即使在焦点位置,.val()也会每3秒被重写一次。要做到这一点,您需要一些脚本,因此jQuery是一种很好的方法。简单的标记无法解决您的问题。相关:我想到的一种方法: var words = ['New York', 'Los Angeles', 'Home']; var $search = $('#searchId'); var in

我想有一个搜索框输入字段,在不对焦时闪烁多个默认值。就像在“纽约”3秒钟,然后是“洛杉矶”3秒钟,等等。或者模拟键入这些内容也不错

我所做的就是这样


但问题是,即使在焦点位置,.val()也会每3秒被重写一次。

要做到这一点,您需要一些脚本,因此jQuery是一种很好的方法。简单的标记无法解决您的问题。相关:

我想到的一种方法:

var words = ['New York', 'Los Angeles', 'Home'];
var $search = $('#searchId');
var index = -1;

function foo() {

    if ($search.is(':focus')) {
        return;
    }
    index++;
    $search.val(words[index % words.length]);
}​

setInterval(foo, 3000);
你可以这样做

在html中

<input id="txtCity" type="text" value="New York"  />​

你为什么想要这个?这听起来像是一个用户界面功能,可能会让用户感到困惑。@Rorymcrossan。该死,我太喜欢比赛了,我是为他做的…:(@gdoron我知道这种感觉,你看到一个非常糟糕的问题,但你不得不找到一个解决方案:D@RoryMcCrossan这是一个客户机请求。1.您可以使用模块操作符(
%
).2.你不需要检查焦点。3.你不需要在每个间隔上查询元素,缓存它。先生,别误会我的意思,但告诉那个家伙他需要编写代码,链接并不是一个很好的答案。我并没有试图实际解决他的问题,但他自己给了他一个如何解决的提示。显然他对脚本编写和通过阅读来复制和粘贴代码不会提高他在这一领域的技能。考虑到这里的其他解决方案,他明天会再次提出类似的问题。可能是真的,但如果你不尝试解决他的问题,你应该使用注释。祝你好运,先生!问题是如果我添加$search.val(“”);在返回以清除搜索框之前,最多需要间隔时间才能生效。如果间隔为..例如,5秒,则为problem@glasspill.我不明白是什么问题,告诉我如何重现它。修复。我添加了这行$search.focus(function(){this.value=”“});​ 在结束时清除焦点上的值。谢谢。
  arr = ["New York", "Los Angesles", "London"];
txtCity = $('#txtCity');
i=0;
setInterval(function(){ 

    if (txtCity.is(':focus')) 
        return;   
    txtCity.val(arr[i++]);
    if(i==arr.length)
         i = 0;
}, 2000);

$('#txtCity').focus(function(){
    this.value=""
 });
​
​