【问题标题】:How to call a jQuery function as fast as possible?如何尽可能快地调用 jQuery 函数?
【发布时间】:2015-09-25 01:44:43
【问题描述】:

所以我正在使用此处显示的仅限 PHP 的分页方法: How to create AJAX pagination without a database? 我的菜单有以下代码:

$(document).ready(function(){
    $("#my-btn").click(function(event) {
        event.preventDefault();
        $('html, body').animate({
            scrollTop: $("#div").offset().top
        }, 2000, "swing", function(){
            $("#shiny").effect('shake', {times: 1, direction: 'left', distance: 5}, 300);
        });
    });
});

由于只有部分页面发生变化,因此我划分了菜单链接以将用户带到页面的不同部分。例如,如果第一页包含元素#div,则用户单击全局模板元素#my-btn(从菜单中),屏幕滚动并且文本抖动一次。但是如果按钮实际上链接到另一个页面呢?我希望即使在另一个包含不同元素的页面上也能执行相同的效果,例如#second-div

所以我想知道一旦用户单击菜单项并从index.php?limit=1&page=0 移动到index.php?limit=1&page=1 或反之亦然,是否有办法执行此功能。

【问题讨论】:

    标签: javascript php jquery


    【解决方案1】:

    有几种方法可以做到这一点:您可以使用一个类并使用它指定元素。

    ... scrollTop: $('.myClass').offset().top ...

    或者您可以在单击时将id 作为函数的一部分传入(这意味着您必须为每个页面指定:

    <a id="my-btn" href="javascript:void();" data-div="#second-div">Scroll Button</a>
    
    <script>
    $(function() {
        $("#my-btn").click(function(event) {
            event.preventDefault();
            var divToAnimate = $(this).data('div');
            $('html, body').animate({
                scrollTop: $(divToAnimate).offset().top
            }, 2000, "swing", function(){
                $("#shiny").effect('shake', {times: 1, direction: 'left', distance:                  5}, 300);
            });
        });
    });
    </script>
    

    【讨论】:

    • 仍然没有动画,只是跳转到带有 id 的元素。
    猜你喜欢
    • 2018-03-02
    • 2016-04-16
    • 2021-10-26
    • 1970-01-01
    • 1970-01-01
    • 2013-06-28
    • 1970-01-01
    • 2011-11-17
    • 1970-01-01
    相关资源
    最近更新 更多