2014-03-27 49 views
1

後不工作我也有類似的事件怎麼回事,但中途加載新的內容和很多的jQuery不會將新的內容負載時工作的頁面。jQuery的「對」事件「負荷」事件

這基本上是一個「遊戲」,你回答了一堆問題(通過AJAX處理),當所有的第一個「級別」的內容被應答,它把你帶到一個新的水平。一旦所有的問題都回答,我是空的()「的主要內容股利,然後使用此:

$('#content').load('next_page.php', function(){ 
$.getScript("js/new_functions.js",function(){   
     $('form.sample_form').on('submit', function(e){         
      e.preventDefault(); 
      alert('test'); 
     }); 
    }); 
}); 

它加載的信息,並做了幾PHP調用數據庫來填充表單中的內容。然後我希望在加載後在表單上提交一個提交函數。我最初在'new_functions.js'頁面中有'提交'功能,但它沒有這樣工作。我假設這是因爲在new_functions.js文件中的AJAX功能,這個異步運行所以形式不是設立form.sample_form之前提交功能被應用(即使它的new_functions後只適用。 js文件被加載)。如果我在AJAX函數中運行提交函數,會出現各種問題,因此無法正常工作。

所以我的問題是我是如何能夠申請提交功能,新的頁面加載之後才形成,新的功能,文件被加載,所有的AJAX的運行。

+1

您最簡單的解決方案可能是切換到委託事件處理任何表單事件。你可以閱讀關於如何實現不同形式的'.on()'[這裏](http://stackoverflow.com/questions/8752321/jquery-live-vs-on-method-for-adding-a-click -event-後裝動態-HT/8752376#8752376)和[這裏](http://stackoverflow.com/questions/9985090/jquery-on-does-not-work-but-live-does/9985137# 9985137)和[這裏](http://stackoverflow.com/questions/9814298/does-jquery-on-work-for-elements-that-are-added-after-the-event-handler-is-cre/9814409 #9814409)在此主題的以前的答案。 – jfriend00

回答

1

我什麼工作是設置全部$裏面以下(文件)。就緒

$(document).on('submit','form.firstForm', function(event){ 
    event.preventDefault(); 

    handleData(); 
}); 

$(document).on('submit','form.secondForm', function(event){ 
     event.preventDefault(); 
     handleData(); 
}); 

此外,如果你有,你在每個窗體重用輸入插件,包裝他們這樣使後每個阿賈克斯操作初始化

$(document).ajaxComplete(function(event, xhr, settings) { 
     $("#inputdate").pickadate(); 

     $("#inputtime").pickatime(); 
}); 
+0

完美,'ajaxComplete'功能正是我所期待的。謝謝! – MillerMedia