2013-04-30 49 views
1

我想加載一個頁面到jQueryUI的.dialog()功能,它工作正常。但關閉對話框後,我的頁面的其餘部分仍然被禁用。jQueryUI對話框正在打破我的頁面

$(function() { 
    var w = $(document).width(); 
    var h = $(document).height(); 

    $("#diag").dialog({ //dialog box settings 
     autoOpen: false,  //do not open automatically 
     show: { 
      effect: "slide"  //slide frame in 
     }, 
     modal: true,   //disable the other elements 
     width: w,    //set width to window width 
     height: h    //set width to window height 
    }); 

    $(".icon").click(function() { //on .icon click 
     var v = $(this).attr('value'); //load value of clicked item into v 
     $("#diag").load(v).dialog("open"); //open the #diag box 
    }); 
}); 

當我帶走.load(v)並註釋掉V的初始化,.dialog()完美。我很難過。

+3

您正在加載的頁面是否包含jQuery和jQuery UI的另一個副本? – 2013-04-30 20:24:43

+0

它沒有。我把它包括進去了,重新測試了一下,讓我更靠近了一步!現在回到主頁面時,懸停工作。如果不刷新,我們仍然無法重新打開窗戶。 – jrelwell 2013-04-30 20:30:39

回答

1

問題可能是因爲.load異步替換了內容,所以您可能會丟失所有正確解除對話框的事件綁定。

試試這個:

var v = $(this).attr('value'); 
var dialogContent = $('#diag'); 
dialogContent.load(v, function() { 
    dialogContent.dialog('open'); 
}); 

換句話說,等待負載打開對話框之前完成。

+0

凱文的預感看起來很可能。 – Jacob 2013-04-30 20:28:49

+0

這是一個不行的:( 所以,我拉的按鈕值是保存文件名,它是正確加載對話框,只是在關閉它之後,我必須刷新頁面才能重新啓動,打開剛剛關閉的同一對話框 – jrelwell 2013-04-30 20:36:11

+0

如何關閉對話框?也許問題在於該代碼。 – Jacob 2013-04-30 20:36:51

0

將點擊功能中的所有內容都移動到一切後,就可以正常工作。感謝大家的幫助。

$(function() { 
$(".icon").click(function() { //on .icon click 
    var w = $(document).width(); 
    var h = $(document).height(); 

    $("#diag").dialog({ //dialog box settings 
     show: { 
     effect: "slide"  //slide frame in 
     }, 
     modal: true,   //disable the other elements 
     width: w,   //set width to window width 
     height: h    //set width to window height 
}); 
    var v = $(this).attr('value'); //load value of clicked item into v 
$("#diag").load(v).dialog("open");  //open the #diag box 
}); 

});