jQuery チェーンを正しく理解していれば、リストの最初のメソッドが実行され、次のメソッドが実行される前に完了する必要があります。そのため、私は次のものを持っています
$.fn.reportZebraStriper = function(options) {
console.log('reportZebraStriper()');
return true;
}
//onDom ready events
$(document).ready(function(){
$("#oom_display_options select")
.on("change", function(event){
$('#OOM_vs_Logged').loadUrl(//ajax method call in the global site.js file//);})
.reportZebraStriper();
})
最初のページの読み込みでは、すべてが期待どおりに実行され、コンソールは $.fn.reportZebraStriper() から出力を取得します。「oom_display_options」ドロップダウンを変更すると、ajax が起動され、コンテンツ DIV がリロードされますが、reportZebraStriper() はあとがきを起動しません。
ここで何が間違っていますか?
編集 1: loadURL() メソッド定義の場所。これは、jQ に組み込まれている .ajax() メソッドの単なるラッパーです。ajaxの実行中などにアニメーションを表示します。
$.fn.loadUrl = function(url, dataAjax) {
var target = this;
target.addBlockLoadingDiv();
return $.ajax({
type: "POST",
url: url,
data: dataAjax,
success: function(data) {
if (data) {
target.html(data);
} else {
target.text("Unable to display requested data, sorry.");
}
},
error: function(err) {
target.html(err.response);
}
});
};
jQ の load() メソッドは、コールバック メソッドの実行をすぐに呼び出すように見えます (Im が間違っていない限り)。この不便さ。私たちが必要としているものです。
編集 2: ajax 呼び出しの 'complete:' が起動されたときに、この logi に固有の ajax 呼び出しを作成し、$().reportZebraStriper() メソッドを呼び出します。私が探していた解決策ではありませんが、うまくいきました。