Ajaxリクエストとajaxで可変のコンテンツを表示するために複数回読み込まれるコンテナ要素があります。完全な関数の中に関数(A)を含めて呼び出されていますifステートメントif文内で複数回実行する関数
私の問題は、関数(A)が最後に呼び出されたときに、if文がtrueになる前にコンテナがロードされた回数に応じて複数回呼び出されることです。
$(".button").on("click", function(){
loadContainer();
});
var loadContainer = function(){
$(".container").load(url, function(){
var x = $(".x");
if(x.length>0){
A();
};
});
};
x
は、その要素がロードされるときだけ呼ばれるべきコンテナと機能(A)にロードされる要素$(".x")
です:
は、ここに私のコードのシンプルなバージョンです。すなわち、コンテナを3回ロードした後、関数(A)が3回呼び出された後に(x.length> 0)が真であれば、$(".x").length>0
です。
これには方法がありますか、関数(A)が一度だけ呼び出されるようにする方法はありますか?
編集: 私の完全なコード:
ajaxBtn.on("click", function(e) {
loadContainer(url, curtain, mainContainer, body, links);
});
var loadContainer = function(url, curtain, maincontainer, body, links) {
$(".main-container").load(url + " .main-container > *", function() {
$("#logo").css({
"z-index": "400"
});
mainFun();
curtain.removeClass("full");
links.removeClass("here");
body.removeClass("no-scroll");
clearInterval(timer);
getFlexIndex();
position = 0;
if (vidContainer.length > 0) {
youTubeLazyLoad();
}
});
};
すべての変数がすでに定義されていることを前提としてください。
テイクに新しい1
変更
を追加する前に、クリックリスナーを削除することです '()'ループの外。または '$(document).one( 'load'、A)' – zer00ne
'x'とは何ですか? 'A'はANONYMOUS' x'の値に応じて '.container'ごとにおそらく呼び出されます。 –
'x'はコンテナにロードされる要素' $( "。x") 'であり、関数(A)はその要素が読み込まれるときにのみ呼び出されるべきです。 ( '.x")。length> 0' – moamenezzat