我正在尝试使用scrollTo插件在我的文档中滚动几个div。
问题是我滚动的项目并不总是存在,因此会引发错误。
每个可滚动的div包含一个锚列表。根据用户输入,某些项目会更改其类别(每个项目都有多个类别)。我有4个可选类,每个项目可以更改为:
<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滚动到所选/突出显示的项目(如果有的话)。如果没有这样的项目,则不会发生任何事情。
我使用这种语法进行滚动:
$("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,因为当我一个接一个地调用几个滚动时,它们都没有执行: / p>
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)}
任何帮助都将受到高度赞赏!
答案 0 :(得分:1)
你检查元素是否存在的方法是正确的,你的条件是错误的,试试这个:
if ($('a.highlighted.col4').length) {
$("div#places4").scrollTo($('a.highlighted.col4'),800)
}