2011-11-16 83 views
0

我在页面上有一些js和jquery(在外部文件中),并且页面载入中的所有内容都工作正常。所有的效果都很好。当我通过jquery提交表单并从服务器获取更多js数据并通过jquery将其附加到body时,问题就开始了。数据本身是jQuery,并将HTML添加到指定的元素。现在,这段HTML内的任何内容都不会触发以前的jquery代码。我必须一次又一次地重发相同的代码,每个Ajax响应。这是语言正常行为的问题吗?js/jquery不能使用ajax数据

我是初学者。

赫兹在此之前,做工精细,但后记犯规代码:

$('form').submit(function() { 
      switch($(this).attr('name')) 
      { 
       case 'ajaxeditbookmarkform': 
       alert('1'); 
       case 'ajaxbookmarkform': 
       alert('2'); 
      } 
      return false; 
    }); 
+0

不理解你的意思。你是否试图在成功回调你的ajax调用时触发一些jQuery代码? –

+0

请提供您的html代码,jquery代码看起来是正确的。 –

+0

正如akhil所说 - 你需要一个'break;'在每个'case'块之后 - 否则执行将会落入下面的'cases' –

回答

2

尝试live事件....

此方法提供了一种方法将委派的事件处理程序附加到页面的文档元素,这简化了我们当内容被动态地添加到一个页面时,有关详细信息,请参阅.on()方法中关于直接与委托事件的讨论。

2

你错过了的情况下,break语句...

检查fiddle

1

首先。是的,这是正常的行为。你可以尝试做的是使用jQuery中的.live功能,如下所示:

$('form').live('submit', function() { 
     switch($(this).attr('name')) 
     { 
      case 'ajaxeditbookmarkform': 
      alert('1'); 
      case 'ajaxbookmarkform': 
      alert('2'); 
     } 
     return false; 
});