這似乎是一個常見主題,但我沒有看到任何人發佈此特定版本。在按鈕操作中帶回調的JQuery UI對話框失敗第二個對話框打開
<script>
$(document).ready(function() {
$("#somebutton").click(function() {
$.get("someurl", function(data){
$("#PartsDialogDiv").html(data);
$("#PartsDialogDiv").dialog("open");
});
});
$("#PartsDialogDiv").dialog({
autoOpen: false,
width: 600,
resizable: false,
modal: true,
buttons: {
"Use Part": function() {
$.get("someurl", function(data){
$("#AnotherDIV").html(data);
});
$(this).dialog("close");
},
"Cancel": function() {
$(this).dialog("close");
}
}
});
});
</script>
<div id="PartsDialogDiv"></div>
<div id="AnotherDIV"></div>
當我按下調用做了「使用部分」按鈕動作後.dialog(「開放」)是無法打開按鈕,會出現什麼情況。事實上,它指出:
Object doesn't support this property or method
我有一種感覺,在「使用部分」的第一次新聞回調未能保持對PartsDialogDiv的dailog設置,它不再知道該DIV可以有jquery UI方法調用它。因爲它全部包裝在$(document).ready()中,所以我不確定如何處理將該div重新初始化爲對話框而不將其放入「使用零件」按鈕功能中。
有沒有人經歷過這個,並有如何處理這個好的提示或建議?
預先感謝您!
這是MVC3,但不完全確定它是相關的。
回答(因爲我不能回答我自己的問題,直到發佈8小時後): 我設法解決它。仁和喬治康明斯都讓我得出這樣的結論:我的部分觀點很糟糕。
在我的部分觀點我有這些腳本包括:
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")"
type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")"
type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"
type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")"
type="text/javascript"></script>
他們是自動生成的(或我盲目地包括他們出於某種原因),而且不需要的。我刪除了它們,一切按預期工作。
非常感謝你的時間每個人!
我不確定是否正確理解上下文。你能發佈調用.dialog(「open」)的代碼/點擊事件嗎? ?另外,調用.dialog(「close」);不會銷燬DOM元素,也不會銷燬該元素上的任何對話窗口小部件的實例。 – WhiskeyTangoFoxtrot 2011-05-17 18:20:29
增加了額外的代碼。我知道你的意思是對話框(「關閉」)不會破壞DOM。但如果我刪除回調,它工作正常。如果我在按鈕動作中有回調,它會給出該錯誤,我假定回調刪除了對話框元素。或者其他的東西。 – Industry86 2011-05-17 18:25:27