我有一个基本的搜索功能,我可以在其中将搜索查询输入到一个字段中,该字段将显示建议结果的下拉列表。我可以单击任何建议的结果,然后将该记录的值(存储在 MySQL 数据库中)插入到该字段中,正如我所期望的那样。但是,如果我在第一次运行脚本后立即尝试做同样的事情,那么它就不起作用了。但是,如果我重新加载页面,那么它将再次工作。换句话说,它会在我第一次运行脚本时起作用,但不会在脚本的后续运行中起作用,除非我重新加载页面。就好像通过运行脚本,它在第一次运行后“自行关闭”,而不是让我再次运行脚本。有任何想法吗?这是代码:
<script>
$(function(){
var index = -1;
$('#myID').keyup(function(e){
if (e.keyCode == 38){
index = (index == 0) ? 0 : index - 1;
$('tr.myRow').removeClass('gray');
$('tr.myRow:eq(' + index + ')').addClass('gray');
return false;
}
else if (e.keyCode == 40){
index = (index + 1 >= $('tr.myRow').length) ? $('tr.myRow').length - 1 : index + 1;
$('tr.myRow').removeClass('gray');
$('tr.myRow:eq(' + index + ')').addClass('gray');
return false;
}
else
{
var str = $('#myID').val();
mySearch(str);
}
index = -1;
});
});
</script>
<script>
$(function(){
$('#myID').keydown(function(e){
if (e.keyCode == 13){
var functionName = $('#pageSearch1 > tbody > tr.gray').attr("onclick");
setTimeout(functionName, 0)
$('#pageSearch').css({'visibility': 'hidden'});
return false;
}
});
});
</script>
“onClick”属性是以下脚本:
function insertPageIDIntoHiddenField(pageID,pageName)
{
$('tr#eventPageID td#loc input#locationID').val(pageID);
$('tr#eventPageID td#loc input#myID').replaceWith('<input id="myID" class="event_form_long" type="text" name="location" value="'+pageName+'" autocomplete="off" />');
$('tr#eventPageID td#loc input#myID').text(pageName);
$('#pageSearch').replaceWith('<div id="pageSearch"></div>');
}