1
我將一些參數傳遞給一個javascript函數,該函數爲用戶填充表單創建一個表單。其中包含另外兩個函數,它們分別處理保存或取消表格。取消功能需要使用兩個參數來確定要構建的實體列表。問題在於參數。在表單構建函數中,如果我將取消函數附加到新創建的取消按鈕而沒有提供任何參數,則函數按鈕可以正常工作,但由於缺少參數而會生成一個空列表。但是,如果我將函數附加到參數中,則該函數會在創建頁面時立即觸發,而不是在單擊該按鈕時觸發。我曾嘗試以幾種不同的方式附加偵聽器,包括javascript,jquery甚至yahoo.util。在其他實例中使用參數調用時,所有功能都可以在cancel函數中正常工作。有關爲什麼函數會在參數傳遞時提前觸發的想法?當參數通過時事件監聽器發射得太早
這裏是一些sudo代碼,我已經附加了偶數聽衆的不同方式。
function buildform(formData, saveFunction, CancelFunction, p1, p2){
$("#cancelButton").live("click", cancelFunction(p1, p2);
YAHOO.util.Event.on("cancelButton", "click", cancelFuntion(p1, p2));
cancelButton.setAttribute("onClick",cancelFunction(p1, p2);
}
您應該始終如一地使用'on',而不是使用'live',它被廢棄了。 – apsillers