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

问题描述:

这是来自在线商店页面的代码的一部分。 PHP代码加载完整的目录,之后,jquery点击相应的链接并过滤目录。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(); 
    } 
}); 
+0

你试过'(document).ready('而不是'(window).load'吗?听起来像一个经典的加载时间问题。 – Markus

+0

我需要这个功能窗口加载没有文档准备..谢谢反正 –

随着var clicked = true;要定义新的变量到each()函数的局部范围,所以删除var(即只是做clicked = true)使用在定义的全局变量3210范围以上:

$(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(); 
    } 
}); 
+1

你真棒))非常感谢你 –