2016-02-08 95 views
2

如果我使用$ .post(...),$ .get(...)或其他方法收到ajax響應。ajax調用後,是否有可能重新初始化jQuery的所有插件?

收到的回覆是一個html格式的文檔,幷包含jQuery插件。

我知道jQuery插件需要在ajax響應後重新初始化。 像這樣

$.get('<ajaxurl>').done(function(response){ 
    $('#some_element').html(response); 
    $('#element1_in_some_element').init_plug_in_1(); 
    $('#element2_in_some_element').init_plug_in_2(); 
    $('#element3_in_some_element').init_plug_in_3(); 
    $('#element4_in_some_element').init_plug_in_4(); 
    .... 
}); 

但有可能重新初始化Ajax調用後,所有的插件?

這樣

$.get('<ajaxurl>').done(function(response){ 
    $('#some_element1').html(response); 
    $('#some_element1').init_plug_in_all(); 
}); 

+0

jQuery插件需要Ajax響應後重新初始化!他的意思是什麼? – brk

+0

我無法想象你想設置'$('#some_element1')'所有的插件。所以馬科斯的回答看起來最好。 – BenG

+0

@ user2181397對不起,我的英語不好。 – LaLaAsDev

回答

1

如果您創建了一個函數來初始化插件,那麼您可以在ajax調用結束時調用該函數來重新初始化所有插件。這並不是什麼標準,都取決於你的插件和你的初始化器。考慮這樣的事情:

var initializePlugins = function() { 
    $('selector').datepicker(); 
    $('selector2').fullcalendar(); 
    $('selector3').jScrollPane(); 
}; 

// when ajax done 
$.ajax().done(function() { 
    initializePlugins(); 
}); 

// when the DOM is ready   
$(document).ready(function() { 
    initializePlugins(); 
}); 
+0

謝謝。爲您的建議 – LaLaAsDev

3

如果您綁定到該文件,它應該讓你有裏面有你的插件自動應用的頁面上添加動態元素。

例如

$('.datePickers').datepicker(); 

只會火上文檔加載,並與「datePickers」類中的任何新元素將不會有可用的功能。

但是,如果你重視這樣的...

$(document).on('load','.datePickers', function() { 
    $(this).datepicker(); 
}); 

這將適用於與datePickers類的所有元素,即使是那些通過AJAX添加

+0

感謝您的建議! – LaLaAsDev

+0

@LaLaAsDev,完全沒問題。樂意效勞。 – Phil

1

如果你想$('#some_element1').init_plug_in_all();那麼你寫一個插件。

$.fn.init_plug_in_all = function(plug_1, plug_2, plug_3, plug_4){ 

    this.each(function() { 

    plug_1 && $(this).init_plug_in_1(); 
    plug_2 && $(this).init_plug_in_2(); 
    plug_3 && $(this).init_plug_in_3(); 
    plug_4 && $(this).init_plug_in_4(); 

    }); 
}; 

然後使用,如: -

$('#some_element1').init_plug_in_all(true, false, false, true); 
$('.some_class').init_plug_in_all(false, false, true, true); 
//etc 
+0

謝謝您的諮詢! – LaLaAsDev

相關問題