[英]I don't understand how this javascript/jquery codes executes
如果刪除第一行(alert()),以下代碼將不起作用,很明顯,我不需要它。 我將事件綁定到的表單是使用jquery動態生成的。 請問可能是什么問題? 謝謝。
alert("");
$("#search").autocomplete('func.php');
$("#c_name").autocomplete('func.php');
$("#search").keypress(function(event) {
if (event.which === 13) {
findItem('search');
return false;
}
});
可能是警報提供了jQuery識別所需元素所需的延遲。
刪除alert()並在代碼周圍添加以下內容:
$(document).ready(function(){ ... your code here ... })
警報為加載表單提供了必要的延遲,之后將事件綁定到元素就很有意義。 沒有alert語句,代碼將在表單元素可以實際加載之前被執行。 嘗試使用jquery的live()函數將事件綁定到正在動態加載的元素。 使用方法如下: http : //api.jquery.com/live/
如果在動態創建搜索表單之前調用$("#search")
,則jQuery查詢將返回0個對象,並且無法將事件綁定到任何對象。
對alert()
的調用會創建一個暫停,該暫停允許在進行$("#search")
查詢之前創建表單。 您可以通過確認這個alert
荷蘭國際集團的結果$("#search")
有和沒有第一alert()
在嘗試將任何事件綁定到搜索表單之前,必須確保已創建該搜索表單。 如果這樣做不容易,則可以考慮使用jQuery 1.5+ 延遲對象 。 延遲的對象可用於確保在將事件綁定到搜索表單之前創建該搜索表單。
您需要將其包裝在$(document).reada中:
$(document).ready(function(){
$("#search").autocomplete('func.php');
$("#c_name").autocomplete('func.php');
$("#search").keypress(function(event) {
if (event.which === 13) {
findItem('search');
return false;
}
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.