我想有一个搜索框输入字段,当不在焦点时闪烁多个默认值。如在“纽约”中持续3秒,然后“洛杉矶” 3秒等,或模拟这些输入也很不错。
我所做的就是这个
但问题是.val()每隔3秒就被覆盖一次,即使它处于焦点时也是如此。
答案 0 :(得分: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);
答案 1 :(得分:2)
你可以这样做Demo on JsFiddle
在html中
<input id="txtCity" type="text" value="New York" />
IN脚本
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=""
});
答案 2 :(得分:1)
你需要一些脚本才能做到这一点,所以jQuery是一个很好的方法。简单的标记不会解决您的问题。相关:Changing the "placeholder" attribute of HTML5 input elements dynamically using Javascript