我在維護最近安裝了Google-CSE模塊的Drupal網站,該模塊會索引並提供搜索結果。jQuery爲動態內容添加功能
使用jQuery,我需要修改搜索產生的節點標題。這是十分必要的,因爲搜索結果會動態加載到已加載的搜索結果頁面中。
使用下面的代碼:
(function ($) {
Drupal.behaviors.cse = {
attach: function (context, settings) {
jQuery(document).ready(function ($) {
checkContainer();
});
function checkContainer(){
if($('div#___gcse_0 div.gsc-resultsbox-visible').is(':visible')){
$('div#___gcse_0 div.gs-title a.gs-title').each(
function(){
$(this).css('color', 'green');
text = $(this).text();
$(this).text(text.replace('| MATCHING TEXT TOBE SUBSTITUTED','---***---'));
}
);
}else{
setTimeout(checkContainer, 50);
}
}
}
}
})(jQuery);
上面的代碼工作在搜索結果的第一頁上,但是當後續頁通過AJAX加載失敗。
我說實話,我不知道行爲是如何正確實施的。在研究這個問題的解決方案時,我讀取行爲可以附加到動態創建的元素。但是,我沒有得到理想的結果。
checkContainer僅在文件上被調用。你必須綁定動態添加的數據並再次調用checkContainer。 –
@NidhinChandran:謝謝,但我需要更多的幫助。我是新來的。 – sisko
你能分享ajax功能嗎?我想你只需要在ajax調用結束後調用checkContainer。你可以在'ajax done'內做到這一點 –