2014-09-20 75 views
0

我有以下問題: 我使用對話框顯示不同的頁面/內容,他們的內部,但是當兩個不同的對話框打開崩潰,他們無法打開再次。只要打開一個箱子,一切都很好,甚至可以打開多次。當我打開第二個對話框時,他們都不能重新打開。我已經試圖在關閉時「銷燬」對話框(正如這裏建議的Jquery Dialog opening multiple dialogs),但它沒有幫助,我仍然只能打開每個盒子的一個實例,當打開兩個不同的盒子時,它會崩潰並且它們都不會重新打開。jQuery的 - 的對話框多個實例不會打開

我在HTML類似的東西:

<ul> 
<li><a href="javascript:void(0)" id="link1">link1 title</a></li> 
<li><a href="javascript:void(0)" id="link2">link2 title</a></li> 
</ul> 

然後在JavaScript:

$("#link1").click(function() { 
$(function() { 
     $('<div>').dialog({ 
      modal: false, 
      open: function() 
      { 
       $(this).load('somePage.php'); 
      },   
      height: 500, 
      width: 1300, 
      title: 'title1' 
     }); 
    }); 
}); 
$("#link2").click(function() { 
$(function() { 
     $('<div>').dialog({ 
      modal: false, 
      open: function() 
      { 
       $(this).load('otherPage.html'); 
      },   
      height: 535, 
      width: 880, 
      title: 'title2' 
     }); 
    }); 
}); 

回答

1

$(function() {是不是在正確的地方:

$(function() { 
    $("#link1").click(function() { 
     $('<div>').dialog({ 
      modal: false, 
      open: function() 
      { 
       $(this).load('somePage.php'); 
      },   
      height: 500, 
      width: 1300, 
      title: 'title1' 
     }); 
    }); 
    $("#link2").click(function() { 
     $('<div>').dialog({ 
      modal: false, 
      open: function() 
      { 
       $(this).load('otherPage.html'); 
      },   
      height: 535, 
      width: 880, 
      title: 'title2' 
     }); 
    }); 
}); 

代碼裏面$(function() {…}在文件加載時執行,是註冊事件ha的完美時間ndler在我們的HTML元素上。

+0

感謝您的答案,但不幸的是它並沒有解決它。我改變了函數的位置,並且仍然可以在多個對話框中多次單獨打開每個鏈接,但是一旦我打開第二個鏈接,兩個鏈接都停止工作,直到頁面重新加載後我才能重新打開它們。 – vove 2014-09-20 15:08:50

+0

你期望什麼行爲? '$(this).load' ajax加載頁面的內容,而不是頁面本身(爲此使用iframe)。 「鏈接停止工作」是什麼意思? – 2014-09-20 16:25:32

+0

我認爲你不明白我的問題,我可以打開每個對話框只有一次,關閉第一個對話框後,打開第二個對話框,然後單擊鏈接再次打開第一個對話框它不起作用。 試圖通過人提出了不同的解決方案,以清除關閉該對話框的內容後,我開始通過我的(仍然有缺陷)代碼挖掘,發現那是因爲我的愚蠢的錯誤:當我在子頁面運行測試我的jQuery直接加載有來自外部的api,它似乎與我在index.html中本地加載的版本不同,這就是導致崩潰的原因。 – vove 2014-09-21 11:44:14