-1

我希望有一个搜索框输入字段,当不在焦点时会闪烁多个默认值。如在“纽约” 3 秒,然后在“洛杉矶” 3 秒等,或者模拟这些打字也很好。

我所做的是这个

http://jsfiddle.net/5aD7W/1/

但问题是 .val() 每隔 3 秒就会被覆盖一次,即使它处于焦点位置也是如此。

4

3 回答 3

3

我想出的一种方法:

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);

现场演示

于 2012-05-30T09:02:55.273 回答
2

你可以像JsFiddle 上的这个 Demo 那样做

在 html 中

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

输入脚本

  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=""
 });
​
​
于 2012-05-30T09:03:49.480 回答
1

您将需要一些脚本来执行此操作,因此 jQuery 是一个不错的方法。简单的标记不会解决您的问题。相关:使用 Javascript 动态更改 HTML5 输入元素的“占位符”属性

于 2012-05-30T09:01:11.750 回答