2013-07-28 61 views
1

我有一個包含用戶信息的行的表。克隆使用JQuery clone()方法動態添加html內容

當一些用戶點擊鏈接<a id="modify1" data-userid="value">該行,則隱藏該<div id="formContainer"></div>得到dynamicaly填充了<form>標籤(通過JQuery load('getuserupdateform.php?user_id=X')法),用於更新該用戶。

在調用load()方法後,我調用另一個函數showModal(),將<div id="formContainer"></div>(及其動態添加的內容)放入模態窗口中。

但問題在於動態添加的<form>元素不存在於模態窗口中。

下面是相關的代碼:

$('a.modify').click(function() { 
     $('#formContainer).load('getuserupdateform.php?user_id=X'); 
     return showModal($(#formContainer)); 
    }); 

    showModal = function(element) { 
    var modal; 
    modal = element.clone(); 
    //Code for creating the modal window 
    } 

看來,clone()方法沒有克隆的動態添加<form>元件。

我該如何解決這個問題?

回答

1

首先,你應該使用$('a#modify1'),因爲modify1是ID而不是類。

您正在運行showModal,但未檢查load方法是否已完成,因此它找不到任何<form>進行克隆。

嘗試把的ShowModal作爲回調到負載功能:

$('a#modify').click(function() { 
    $('#formContainer).load('getuserupdateform.php?user_id=X', function(){ 
     return showModal($(#formContainer)); 
    }); 
}); 

這樣,的ShowModal將只運行在load請求完成。

回調是如何工作的詳細解釋:http://api.jquery.com/load/