[英]How to access dynamically-generated page content via jQuery?
我有一個SharePoint Web部件頁,其中的列表視圖已分組並且默認為“折疊”(非常類似於基本切換)。 SharePoint生成自己的JavaScript以處理初始單擊操作,然后該JavaScript擴展頁面區域並將新內容動態寫入該區域。 問題是jQuery在單擊后無法立即訪問新內容(它需要完成加載)。 我的想法是將第二個jQuery click函數添加到切換鏈接,並以某種方式等待新內容添加,然后再進行其他操作,但是我不確定如何確定動態內容何時完成加載...
//bind a 2nd additional onclick handler via jquery to these items
$('td.ms-gb').children('a').click(function()
{
//give the clicked item a border for visual identification
$(this).css("border","1px solid cyan");
//delay this function until the sharepoint onclick handler finishes loading new content
$('TD.ms-vb-icon').children('a').each(function(index)
{
//give each item a border for visual identification
$(this).css("border","1px solid red");
//perform more jquery on each item
}
);
}
);
解決此類問題的常用技術是使用
setTimeout(function,timeoutInMs)
並嘗試在功能中查找新內容,如果失敗,請重新啟動超時,直到找到內容為止
這是一個jsFiddle來說明: http : //jsfiddle.net/Dhww2/
我唯一想到的就是設置另一個在$.ajaxSuccess()
http://api.jquery.com/ajaxSuccess/中注冊的單擊處理程序,並在第一個AJAX請求(單擊后)完成后做出響應
這有點駭人聽聞,但是如果獲取動態內容的代碼沒有回調,則沒有太多選擇。
您要如何處理已加載的內容? 只是樣式並吸引其他點擊?
在這種情況下,請使用樣式表進行自定義樣式,並使用jQuery的live函數捕獲(單擊)進一步加載的元素的事件。
更新評論
$('TD.ms-vb-icon a').live('click', function(ev) {
$(this).attr('name','value');
}
如果您的點擊跟蹤代碼較早注冊,則可能無法使用。 如果是這樣,請嘗試使用mouseover
事件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.