私は文書内の複数のdivをスクロールするためにscrollToプラグインを使用しようとしています。scrollTo存在しないjquery要素がエラーを投げます
問題は、スクロールしているアイテムが常に存在するとは限りません。そのため、エラーが発生します。
各スクロール可能なdivには、アンカーのリストが含まれています。ユーザーの入力に応じて、いくつかの項目はクラスを変更します(項目ごとに複数のクラスがあります)。
<a id="445" class="list col3"">Paris</a>
<a id="445" class="highlighted col3">Paris</a>
<a id="445" class="selected col3">Paris</a>
<a id="445" class="noshow col3">Paris</a>
それぞれの項目を選択/強調表示された項目にスクロールしたい場合は、その項目を選択します。そのような項目がない場合、何も起こらないはずです。
私はスクロールを行うには、この構文を使用し:
$("div#places4").scrollTo($('a.highlighted.col4'),800);
のdiv#のplaces4で強調表示された要素があるとき、それは正常に動作しますが、そこではないとき、それはエラーがスローされます(「oは定義されていません" - scrollToコードを参照)。
私はコンディショニングにこのようなscrollToへの呼び出しを試みた:
if($('a.highlighted.col4').length<!0) {$("div#places4").scrollTo($('a.highlighted.col4'),800)}
をしかし、同じエラーが表示されます。
それ以外の場合、私はページが読み込まれたときに私のコンソールがきれいで空ですが、エラーはscrollToへの今後の呼び出しを防ぐことができます。
if($('a.selected.col1').length<!0) {$("div#places1").scrollTo($('a.selected.col1'),8000)}
if($('a.selected.col2').length<!0) {$("div#places2").scrollTo($('a.selected.col2'),8000)}
if($('a.selected.col3').length<!0) {$("div#places3").scrollTo($('a.selected.col3'),8000)}
if($('a.selected.col4').length<!0) {$("div#places4").scrollTo($('a.selected.col4'),8000)}
ご協力いただけると助かります。
私はそれを逃した信じることができません!これはvbからjsに切り替えるときに起こります。演算子を混在させます(<!と!=の素晴らしい組み合わせです。同意しないのですか?) ありがとうございます。今は完璧に動作します。 – einav
btw、if($( 'a.highlighted.col4')。length)またはif($( 'a.highlighted.col4')。length!= 0)を使用するかどうかは重要ですか? – einav
javascriptでは、条件内の0以外の値はtrueと解釈されます。従って 'if(.length)'と 'if(.length!= 0)'は同じです。 –