jQuery プラグイン「Owl Carousel」を使用していますが、javascript 変数をオプション値としてプラグインを初期化しようとすると、奇妙な問題が発生します。
基本的に私は以下を持っています:
// thumbnail_count is the number of images in the slider,
// already calculated elsewhere
var thumbnail_breakpoints = '';
switch (thumbnail_count) {
case 3:
thumbnail_breakpoints = '[0, 1], [219, 2], [299, 3]';
break;
case 2:
thumbnail_breakpoints = '[0, 1], [219, 2]';
break;
case 1:
thumbnail_breakpoints = '[0, 1]';
break;
}
jQuery(function($) {
$('#itemslider-zoom').data('owlCarousel').reinit({
itemsCustom: [thumbnail_breakpoints]
});
});
これは機能せず、itemCustom の値が reinit 関数に正しく渡されません。ただし、itemCustom の値を手動で入力すると、必要に応じて完全に機能します。2 つの画像の場合
jQuery(function($) {
$('#itemslider-zoom').data('owlCarousel').reinit({
itemsCustom: [[0, 1], [219, 2]]
});
});
これがなぜなのか、誰でも解決できますか?javascript デバッグを使用すると、thumbnail_breakpoints が確実に正しく設定されていることがわかります。また、switch case ステートメントを変更して、それぞれが必要な値で直接 jQuery 関数呼び出しを行うようにすると、正常に動作しますが、それはコードの大規模な複製です。
助けてくれてありがとう。
PSこれはprototypejs内にあるため、jQueryが非競合モードで呼び出される理由です。