したがって、このスクリプトには問題があります。基本的に、サイズ変更イベントでスクリプトをロードしています。
I have it working if lets say...
- User has window size above 768 (getScipt() and content by .load() in that script)
- Script will load (and content)
- User for some reason window size goes below 768 (css hides #div)
- User re-sizes again above 768, And does not load the script again! (css displays the div)
偉大な。正しく動作します。
Now.. (for some cray reason)
- User has window size below 768 (Does NOT getScript() or nothing)
- User re-sizes above 768 and stops at any px (getScript and content)
- User re-sizes again anything above 768 (It getScript AGAIN)
スクリプトを一度だけ取得する必要があります。ここからいくつかのコードを使用しました
(編集 - 私はこれを見つけました。彼はスクリプトを一度ロードするという同じ問題を抱えています。)
$(window).resize 内の関数の問題 - jQuery などを使用して、次へのリンクを失いました:/
この問題を最初に見つけたとき、このようなものを使用していたので、問題を解決するために allcheckWidth() を追加しました。しかし、そうではありません。
var $window = $(window);
function checkWidth() {
var windowsize = $window.width();
////// LETS GET SOME THINGS IF IS DESKTOP
var $desktop_load = 0;
if (windowsize >= 768) {
if (!$desktop_load) {
// GET DESKTOP SCRIPT TO KEEP THINGS QUICK
$.getScript("js/desktop.js", function() {
$desktop_load = 1;
});
} else {
}
}
////// LETS GET SOME THINGS IF IS MOBILE
if (windowsize < 768) {
}
}
checkWidth();
function allcheckWidth () {
var windowsize = $window.width();
//// IF WINDOW SIZE LOADS < 768 THEN CHANGES >= 768 LOAD ONCE
var $desktop_load = 0;
if (!$desktop_load) {
if (windowsize < 768) {
if ( $(window).width() >= 768) {
$.getScript("js/desktop.js", function() {
$desktop_load = 1;
});
}
}
}
}
$(window).resize(allcheckWidth);
今、このようなものを使用していますが、これはより理にかなっていますか?
$(function() {
$(window).resize(function() {
var $desktop_load = 0;
//Dekstop
if (window.innerWidth >= 768) {
if (!$desktop_load) {
// GET DESKTOP SCRIPT TO KEEP THINGS QUICK
$.getScript("js/desktop.js", function() {
$desktop_load + 1;
});
} else {
}
}
if (window.innerWidth < 768) {
if (window.innerWidth >= 768) {
if (!$desktop_load) {
// GET DESKTOP SCRIPT TO KEEP THINGS QUICK
$.getScript("js/desktop.js", function() {
$desktop_load + 1;
});
} else {
}
}
}
}) .resize(); // trigger resize event
})
将来の対応のための Ty。
編集 - 例を挙げると、desktop.js には、.load() によって挿入される「abc」コンテンツの前に読み込まれる gif があります。サイズを変更すると、この gif が表示され、desktop.js の .load() が再び起動します。そのため、getScript が 1 回だけ呼び出された場合、desktop.js で再度何も実行することはありません。混乱しますか?