![](/img/trans.png)
[英]How can I add a callback to a function with multiple async calls in JavaScript?
[英]How can I ensure that a javascript function will work on multiple calls?
我具有基本的搜索功能,可以在其中輸入搜索查詢的字段中顯示建議結果的下拉列表。 我可以單擊任何建議的結果,並且該記錄的值(存儲在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>');
}
我已經使用了jQuery的自動完成功能來實現按鍵建議,我希望這可以幫助你
$('#txtSearchText').autocomplete({
source: function(request, response) {
$.ajax({
url: SearchPath + "SearchWebService.asmx/GetUserList",
data: JSON2.stringify({ userName: $('#txtSearchText').val()}),
dataType: "json",
type: "POST",
contentType: "application/json; charset=utf-8",
dataFilter: function(data) { return data; },
success: function(data) {
response($.map(data.d, function(item) {
return {
value:item.UserName
}
}))
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
alert(textStatus);
}
});
},
minLength: 1
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.