2011-11-16 71 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; 
});