为什么此jQuery调用在Firefox中失败?

时间:2019-04-16 14:38:39

标签: jquery

我已经使用animate和scrolltop创建了一个带有JavaScript调用的链接。它在任何地方都可以很好地工作,但是在Firefox中,它可以导航到整个其他页面。有什么想法吗?

<a href="javascript:$('html, body').animate({
    scrollTop: $('#PAGETAG').offset().top  + -500 }, 200);
    $('#alertify-ok').trigger('click');"> [my text] </a>

在Chrome和IE中正常显示结果,警报框消失,页面滚动到我的标签。

2 个答案:

答案 0 :(得分:0)

在该javascript末尾添加return false

答案 1 :(得分:0)

从内联脚本中提取逻辑。如果对多个元素执行此操作,则可以添加一个类来对此进行概括。您也可以使用数据元素来指定要滚动到的数据元素。然后,在执行逻辑之前,您只需在事件处理程序中取消click事件即可。

<a href="#" class="scrollToTargetAndAlert" data-target="PAGETAG"> [my text] </a>

<script>
    $(function(){
        $('.scrollToTargetAndAlert').on('click', function(e){
            e.preventDefault();
            var targetSelector = '#'+ e.target.getAttribute('data-target');

            $('html, body').animate({
                scrollTop: $(targetSelector).offset().top  + -500
            }, 200);
            $('#alertify-ok').trigger('click');
        });
    });
</script>