jquery从另一个脚本调用一个脚本

时间:2016-06-09 07:14:43

标签: php jquery

这是来自在线商店页面的代码的一部分。 php代码加载完整的目录,之后jquery点击相应的链接并过滤目录。

我在页面上有两个jqueries,它们都可以工作,但是

<script>
    $(document).on('click', '.side-menu-categories li', function () {
        var click = $(this).attr('data-filter');
        $('.product-box').hide();
        $('.product-box').each(function () {
            if ($(this).attr('data-filter') == click || click == 0) {
                $(this).fadeIn('fast');
            }
        });
    });
</script>

这部分工作正常,我对此没有任何问题,但是当我尝试在窗口加载时调用它时它没有工作

$(window).load(function () {
    $('#loader_spin').hide();
    $('#product_container').show();
    var clicked = false;
    var filter_catalog = <?php echo(isset($_GET['id']) ? $_GET['id'] : 0); ?>;
    $('.side-menu-categories li').each(function () {
        if ($(this).attr('data-filter') == filter_catalog) {
            $(this).click();
            var clicked = true;
        }
    });
    if (clicked == false) {
        $('.side-menu-categories li[data-filter="0"]').click();
    }
});

1 个答案:

答案 0 :(得分:0)

使用var clicked = true;,您将新变量定义到each()函数的本地范围,因此删除var(即只执行clicked = true)以使用在中定义的全局变量上面的load()范围:

$(window).load(function () {
    $('#loader_spin').hide();
    $('#product_container').show();
    var clicked = false;
    var filter_catalog = <?php echo(isset($_GET['id']) ? $_GET['id'] : 0); ?>;
    $('.side-menu-categories li').each(function () {
        if ($(this).attr('data-filter') == filter_catalog) {
            $(this).click();
            clicked = true; //don't declare it locally
        }
    });
    if (clicked == false) {
        $('.side-menu-categories li[data-filter="0"]').click();
    }
});