2012-08-06 120 views
1

我有一个奇怪的错误与jQuery UI对话框& AJAX。jQuery UI对话框与AJAX第二次运行点击功能

这是这个过程:

  1. 点击链接>链接打开的div使用AJAX。
  2. in AJAX div点击链接>用另一个AJAX打开jQuery UI对话框。
  3. 点击jQuery UI AJAX对话框中的链接>使用JavaScript执行alert()消息。

现在我从一开始就做同样的过程,一切正常,直到alert()消息的阶段。 因此,如果我在下一次执行步骤3时无法正常工作,并且我的控制台中没有出现任何错误。

function update_link(rel) 
{ 
    $("#update_link").dialog({ 
      modal: false, 
      height: 370, 
      width: 900, 
      title: 'im title', 
      open: function() { 
       $(this).load("<?= site_url()?>/links/show_update?id="+rel+"&rand="+rand()); 

      } 
    }); 

} 

代码在步骤3中得到警告信息(此代码是在jQuery用户界面对话框页):

enter image description here

第2步(打开与AJAX jQuery UI的对话框)的代码:

$("#to_page_home").on("click", function(){ 
    alert("im not work if you open me in AJAX again!"); 
}); 

如果我这样做,而不是代码,它也不起作用:

<a href="#" id="to_page_home" onclick="alert('im not work if you open me in AJAX again!');"> 

谢谢大家,对不起我的英语不好。

回答

1

您是否在任何时候切换#to_page_home?如果ID消失/重新出现,您对()不会重新注册时,它会重新出现

看DOC的Direct and Delegated events部分。 。 。你可能需要像这样:

$("#parentContainer").on("click", "#to_page_home', function(){ 
    alert("im not work if you open me in AJAX again!"); 
}); 

在这种情况下,ID parentContainer元素必须包含具有to_page_home的元素,将不得不永久的页面上。

+0

这是不行的,即使'onclick'不起作用 – roev 2012-08-06 18:10:48

+0

对不起,我在代码中有错误。 'onclick()'也不起作用,出于前面提到的同样的原因 - 如果'#to_page_home'被从页面中删除,并重新添加,事件处理程序将不会重新注册它。 – ernie 2012-08-06 18:31:22

+0

什么应该是我的'#parentContainer'?对话框? – roev 2012-08-07 09:10:07