2016-06-09 141 views
2

這是來自在線商店頁面的代碼的一部分。 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

我需要這個功能窗口加載沒有文檔準備..謝謝反正 –

回答

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

你真棒))非常感謝你 –