好的,這是問題所在。 我有一個jqGrid的對話框中,單擊「添加記錄」按鈕後,只有在HTML生成。如何將JavaScript事件處理程序附加到對話框彈出窗口?
我在該對話框中的一個按鈕上附加了一個「Click」事件處理程序,以便在單擊時打開彈出窗口(這是在文檔準備就緒後完成的),但它不起作用,因爲當頁面加載時,處理事件處理程序通過IE瀏覽器,它看到該對話框不存在,並刪除或無效當前無效的處理程序。
你怎麼附加JavaScript事件處理程序,以該對話框(或與此有關的任何元素)執行時,它在加載頁面時不存在的功能? jQuery中
謝謝你的提示。原來,這個工作原理: { ... });(「#」對話框)。 (「#dialog」)。click(function() ... }); 沒有。奇怪的。我認爲(「click」,func())和click(func())是相同的。 – RedAces
@RedAces - '。點擊(處理)'是'。對一個快捷方式( '點擊',處理程序)',這將對於click事件工作直接'#dialog'元素,但'。對() '用一個不同的func重載:'.on('click',selector,handler)''。這個重載需要一個'selector'來過濾處理程序將運行的元素到'#dialog'中的一些元素子集。這是「委託」而不是「直接」的方式來附加處理程序。你使用''html''作爲選擇器的方式是一個無意義的過濾器。最好使用一個選擇器來標識'#dialog'中添加的按鈕。 – nekno