我正在为我的网站使用JavaScript自动提示。每次按键时该功能都会触发。
现在我遇到了一个问题。
当我键入“hosp”时,它将以JSON格式从数据库中获取所有值,如“hosp”。我也在JSON中获得结果[例如5个结果]。但它没有显示在自动提示窗口[只有一个显示],而且疯狂的是,如果我在它的工作之间发出警告[所有5个正在显示]。
//alert(req.responseText); if i remove the comment its showing all the values
var jsondata = eval('(' + req.responseText + ')');
for (var i=0;i<jsondata.results.length;i++)
{
this.aSug.push( { 'id':jsondata.results[i].id, 'value':jsondata.results[i].value, 'info':jsondata.results[i].info } );
}
此外,如果我按下退格键,即使没有警报也能正常工作!
以下功能正在创建 li 元素
function myLoop (arr,i,ul) { // create a loop function
alert(arr);
var pointer = this;
setTimeout(function () {
var output = arr[i].value;
var span = _b.DOM.cE("span", {}, output, true);
if (arr[i].info != "")
{
var br = _b.DOM.cE("br", {});
span.appendChild(br);
var smalls = _b.DOM.cE("small", {}, arr[i].info);
span.appendChild(smalls);
}
var a = _b.DOM.cE("a", { href:"#" });
var tl = _b.DOM.cE("span", {className:"tl"}, " ");
var tr = _b.DOM.cE("span", {className:"tr"}, " ");
a.appendChild(tl);
a.appendChild(tr);
a.appendChild(span);
a.name = i+1;
a.onclick = function () { pointer.setHighlightedValue(); return false; };
a.onmouseover = function () { pointer.setHighlight(this.name); };
var li = _b.DOM.cE( "li", {}, a );
ul.appendChild(li); // your code here
j=i+1; // increment the counter
if (i < arr.length) { // if the counter < 10, call the loop function
myLoop(arr,j,ul); // .. again which will trigger another
} // .. setTimeout()
},10);
}