ロード、サイズ変更、スクロール後に画面サイズに応じて異なる機能を起動しようとしています。他の関数での計算の影響を防ぐには、それらを止める必要があります。ここでJsfiddle からダミーの機能を持つ例がJsfiddleから実関数との例が画面サイズに応じて機能を起動し、サイズ変更後に他の機能を停止する方法は?
あなたがそれを見ることができますコンソールを見れば(それは、HTMLやCSS、ご理解のためだけの機能を示していない)であればここで
最初のreziseの最初の関数が実行された後、別のウィンドウサイズのブレークポイントを取得すると、別の関数が最初の関数と共に実行されます。 3番目のブレークポイントを取得した場合は3番目の関数と同じです。
function sticker1220() {
$(window).on("load resize scroll",function(){
console.log('sticker1220');
});
};
function sticker950() {
$(window).on("load resize scroll",function(){
console.log('sticker950');
});
};
function sticker320() {
$(window).on("load resize scroll",function(){
console.log('sticker320');
});
};
function checksize() {
if ($(window).width() > 1220) {
sticker1220();
} else if ($(window).width() > 640 & $(window).width() < 1219) {
sticker950();
} else if ($(window).width() < 639) {
sticker320();
}
};
checksize();
$(window).resize(function() {
checksize();
$('p').text($(window).width());
});
私はおそらく、すべての3つの機能でこれらのリスナーを入れていないだろう。私はおそらくそれらをトップレベルに設定し、一般的なハンドラから実行を制御します。それ以外の場合、それらの関数の1つが実行されている場合は、ハンドラ/リスナをその中に追加します。停止する必要がある場合は、それらのハンドラを削除する必要があります。しかし、あなたはそれらへの参照を作成しないので(あなたのコードでは削除されません)、どのように機能が停止すると思いますか?特定のイベントに必要なハンドラをすべて追加することができます。これらのハンドラはすべて起動します。 –