2014-02-12 79 views
0

我在php中藉助jquery和ajax創建用戶配置文件。無法在一個請求中進行兩次ajax調用

腳本所做的事情是它有一個左側導航欄,它們是從通過ajax發出的請求填充內容區域的選項卡。

因此,我單擊一個選項卡,它加載一個頁面(使用.get()),頁面的內容是一種形式。當表單被提交時,一個ajax請求被髮送到一個使用該數據來確定要做什麼的php文件。現在我還沒有在PHP文件中設置任何東西,除了響應發回到DOM知道它的作品。

這裏是問題涉及到代碼的JavaScript:

/** 
* 
*/ 
$(function() { 
     $('form').on('submit', function(event) { 

    event.preventDefault(); 

    var target = $(this).attr('href'); 

    $.post(target, function(data) { 
     if (data) { 
      $('#flash').html(data).hide().fadeIn('fast'); 
     } 
    }); 
    }); 
}); 

/** 
* 
*/ 
$(function() { 
    $('#profile-tabs > a').on('click', function(event) { 

    event.preventDefault(); 

    $('#profile-tabs > a').removeClass('active'); 

    $(this).addClass('active'); 

    var target = $(this).attr('href'); 

    $.get(target, function(data) { 
     if (data) { 
      $('#profile-content').html(data).hide().fadeIn('fast'); 
     } 
    }); 
    }); 
}); 

當我直接加載標籤沒有Ajax,它提交就好了,只是它不工作的時間是當內容被稱爲通過ajax請求。

我剛纔提供的JavaScript代碼是在一個名爲profile.js和jquery.js和

任何建議或想法將是真棒,之後被調用,在此先感謝!

回答

3

嘗試$('body').on('submit', 'form', ...更換$('form').on('submit' ...。我敢肯定,那jQuery的結合該事件$('form')元素時的代碼加載 - 然後,當你使用$.get加載形式,該事件未綁定到窗體。

使用另一種方法,它將偶數綁定到$('body'),它始終存在,並在event-target是form-element時執行綁定函數。

+0

非常感謝您的解釋。這已經解決了我的問題,榮譽! – Syx