Php scrollTo仅适用于第一个链接
我有几行代码,当用户点击链接时,页面应该向下滚动到相应的锚 结果表明,它只适用于第一个链接。其他人只是触发了这个例外Php scrollTo仅适用于第一个链接,php,jquery,scroll,Php,Jquery,Scroll,我有几行代码,当用户点击链接时,页面应该向下滚动到相应的锚 结果表明,它只适用于第一个链接。其他人只是触发了这个例外 Uncaught TypeError: Cannot read property 'slice' of undefined 这是密码 jQuery $(document).on('click','#scrollTo',function(){ var to = $(this).attr('class'); //a
Uncaught TypeError: Cannot read property 'slice' of undefined
这是密码
jQuery
$(document).on('click','#scrollTo',function(){
var to = $(this).attr('class');
//alert(to);
//This allways print the correct class name
$(window).scrollTo('div #'+to,'1000');
});
PHP
foreach($sourceRCS作为$src)
{
回声'
“.$src->name”
';
}
我做错了什么
提前谢谢ID应该是唯一的,但您重复#滚动到。尝试使用CSS类作为目标
var to = $(this).attr('class');
$(window).scrollTo('div #'+to,'1000');
您正在选择一个类并将其分配给“to”。然后在下一行中获取该类并将其转换为ID
您的选择器应如下所示:
var to = $(this).attr('class');
$(window).scrollTo('div .' + to,'1000');
Html Id必须是唯一的。像前面建议的那样,尝试使用类。另外,尝试捕获事件目标并滚动到它:
$(document).click(function(evt){
var target = evt.target;
$(window).scrollTo(target, 1000);
});
但是,这将滚动到用户单击的所有内容。更好的解决方案是仅在要滚动到的锚定标记上设置单击事件处理程序:
$("#source a").click(function(evt){
evt.preventDefault();
var target = $(evt.currentTarget);
$(window).scrollTo(target, 1000);
// More code here...
});
我不会改变任何东西。我只是在使用类的内容,但行为还是一样的。将代码更改为此
$(文档).on('click','.scrollTo',function(){var to=$(this.text();//警报(to);$(窗口).scrollTo('div#'+to,'1000');})
并删除了链接的类attibute,但只有第一个链接滚动。
$("#source a").click(function(evt){
evt.preventDefault();
var target = $(evt.currentTarget);
$(window).scrollTo(target, 1000);
// More code here...
});