對 jQuery UI 對話框中的 ASP.NET 按鈕點選事件進行故障排除
本文解決了一個常見問題:jQuery UI 對話方塊中的 ASP.NET 按鈕無法觸發其伺服器端點擊事件處理程序。 即使將對話框的 div 移到表單中也無法解決問題。
理解問題
根本原因通常是 jQuery 程式碼中的關閉問題。 使用 jQuery("#dialog").dialog({...})
建立對話框時,表示對話框的 jQuery 物件被捕獲在閉包內。 隨後嘗試操作對話方塊(例如 jQuery("#dialog").parent().appendTo(jQuery("form:first"))
)會失敗,因為未引用正確的物件。
解:正確的物件參考
解決方案涉及將 jQuery 對話方塊物件儲存在閉包範圍之外的變數中。這允許在創建對話框後繼續存取和操作。 這是修正後的程式碼:
<code class="language-javascript">jQuery(function() { var dlg = jQuery("#dialog").dialog({ draggable: true, resizable: true, show: 'Transfer', hide: 'Transfer', width: 320, autoOpen: false, minHeight: 10, minWidth: 10, }); dlg.parent().appendTo(jQuery("form:first")); });</code>
透過將jQuery 物件指派給dlg
變量,對話框元素上的後續操作(包括對於回發功能至關重要的操作)將正確定位對話框,從而使伺服器端按鈕單擊事件處理程序能夠按預期運轉。
以上是為什麼我的 ASP.NET 按鈕點擊事件沒有在 jQuery UI 對話框中觸發?的詳細內容。更多資訊請關注PHP中文網其他相關文章!