jQuery:在模拟click()或触发器('click')时阻止scrollTop

时间:2013-05-30 20:41:56

标签: jquery triggers click onload scrolltop

我有一组表格可以在点击时隐藏和显示内容。此外,我正在使用scrollTop到达每个单击表的顶部以更好地显示其内容。到目前为止没问题...... 默认情况下,我希望第一个表显示其内容,但我想在页面加载时阻止此情况下的scrollTop。我该怎么办?

$(document).ready(function() {

$('table tr').nextAll().hide();
var $button = $('table th').css('cursor', 'pointer');
$button.click( function() {
$(this).parent().nextUntil('table th').toggle();
$('html, body').animate({
    scrollTop: $(this).offset().top
    }, 500);
});  
$('table th:eq(0)').trigger('click', animate(false));
});

.trigger()上必须有一些代码可以帮助我阻止第一次滚动吗? 谢谢你的帮助!

编辑:嗯,不是最优雅的解决方案,但拆分事件并在动画之前放置触发器()似乎有效:

$(document).ready(function() {

$('table tr').nextAll().hide();
var $button = $('table th').css('cursor', 'pointer');
$button.click( function() {
        $(this).parent().nextUntil('table th').toggle();
}); 

$('table th:eq(0)').trigger('click');

$button.click( function() {
        $('html, body').animate({
        scrollTop: $(this).offset().top
        }, 500);
}); 
});

1 个答案:

答案 0 :(得分:1)

尝试在点击处理程序中移动动画代码,即删除动画代码,并将触发器代码更改为:

$('table th:eq(0)').click(function() {
    $('html, body').animate({
        scrollTop: $(this).offset().top
        }, 500);
    });
});