2013-08-19 93 views
-1

中的選定元素上執行.each可以說,我們有4個標籤內沒有任何內容,直到他們被點擊(延遲加載概念)。過濾AJAX返回的數據並在

當:被點擊

TAB1:數據插入到通過AJAX該選項卡。

單擊Tab2:通過ajax將數據插入到該選項卡中。

多數民衆贊成返回的數據包括:

<ul class="elements"> 
    <li> 
    <div>Stuff</div> 
    <ul class="comments"> 
     ...Initially empty 
    </ul> 
    </li> 
</ul> 

現在,在成功的功能,我調用另一個函數,獲得與父UL的李兒童相關的所有評論.elements,這是我遇到麻煩的地方。

所以之後的所有元素都裝載到標籤中,我有這個功能,需要刮除:

function LoadComments(data) { 
    $newData = $(data).filter('ul.elements'); 
    $newData.find('ul.comments').each(function() { 
    var commentsHome = $(this); 

$.ajax({ 
    url: '/MyFeed.aspx', 
    type: 'POST', 
    dataType: 'html', 
    data: { 
    "xfd" : "GetComments', 
    }, 
    success: function(data) { 
    commentsHome.html(data); 
    } 
}); 
    }); 
} 

到目前爲止,我的變量commentsHome似乎並不奏效。我的目標是僅爲新數據的每個返回元素加載註釋。所以當點擊Tab2時,該功能只對點擊Tab2後返回的數據執行。

不知道我做錯了什麼:(

謝謝!

+0

「 GetComments'似乎是一個錯字或您的問題... – bluetoft

+0

其實它與MyFeed.aspx一起工作,所以不是這樣。 – user1447679

+0

你應該真的包括所有的HTML標記。因此,我們可以瞭解新元素的放置位置,分類和id。 – DevlshOne

回答

0

的commentsHome 變量將不會提供給您的AJAX成功的功能。

但是,可以創建一個隱藏的<input type="hidden" id="commentsHome" />並將該值存儲在那裏,然後在AJAX成功函數中引用該值

function LoadComments(data) { 
    $newData = $(data).filter('ul.elements'); 
    $newData.find('ul.comments').each(function() { 
    $('#commentsHome').val($(this)); 


$.ajax({ 
    url: '/MyFeed.aspx', 
    type: 'POST', 
    dataType: 'html', 
    data: { 
    "xfd" : "GetComments', 
    }, 
    success: function(data) { 
    var commentsHome = $('#commentsHome).val(); 
    commentsHome.html(data); 
    } 
});