2014-09-20 76 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