2017-03-02 77 views
1

我在功能中使用$$('.em-details-tabs')[0].scrollTo();,然后使用$$('DIVELEMENT')[0].click();触发点击。点击功能成功执行,但滚动到特定元素失败。这里是我的代码片段:触发点击后滚动不起作用

$$('a[href="#' + tab_id + '"]')[0].triggerEvent('click'); 
$$('.em-details-tabs')[0].scrollTo(); 

回答

0

scrollTo()元素只是window对象上可用,它也接受两个PARAMATERS; xy职位。

要解决这个问题,你可以在window上使用jQuery的scrollTop()方法,并为它提供所需元素的y位置。试试这个:

$$('a[href="#' + tab_id + '"]')[0].triggerEvent('click'); 
$$(window).scrollTop($$('.em-details-tabs').offset().top); 

Working Example

另外,您可以修改这个逻辑,使滚动动画让你的用户的影响是显而易见的:

$$('html, body').animate({ 
    scrollTop: $$('.em-details-tabs').offset().top 
}, 500); 

Working Example

+0

它的工作,但需要两次按下鼠标点击,单击单击选项卡打开(点击触发点击)第二次功能调用时间移动(Scrolll)到适当的位置, – Monarch1

+0

我还没有看到发生。你可以修改上面的小提琴示例来显示该行为 –

+0

我正在使用原型js,并且所有脚本都是 – Monarch1