2015-08-13 95 views
0

我有一個稱爲頁面的函數,我想通過不重複代碼來選擇性地傳遞一個變量,這可能嗎? 舊代碼傳遞一個變量作爲對javascript/jquery函數的引用

 <script> 
     var pages= (function() { 
        var config = { 
          $config1: $('#block1'), 
          $config2: $('#block-bottom1') 
         }; 
        //more codes 
})(); 
     </script> 

這是我嘗試

 <script> 
      var pages= (function(x) { 
         alert(x); 
         var config = { 
           $config1: $('#block'+x), 
           $config2: $('#block-bottom'+x) 
          }; 
         //more codes 
    })(); 
      </script> 
+3

我沒有看到一個叫做'pages'隨時隨地功能。 'pages'指的是該函數的返回值。如果有的話,你需要在代碼末尾的'()'中將函數傳遞給函數,以便定義'x'。 – Xufox

回答

1

基本上,你的問題是,你的funcion 聲明是錯的,你只是做代替調用。離開了括號,之後用你的功能正常,這裏的片段演示概念:

<html> 
    <head> 
    <script> 
    var pages= (function(x) { 
     alert(x); 
     var config = { 
      $config1: $('#block'+x), 
      $config2: $('#block-bottom'+x) 
     }; 
         //more codes 
    }); 
    </script> 
</head> 
<body> 
    <input type="button" onclick="pages(1)"> button 1</input> 
    <input type="button" onclick="pages(2)"> button 2</input> 
</body> 
</html> 
+0

完美!謝啦。 – dresdain

2

你可能想這樣的:

<script> 
    var pages = function(x) { 
     alert(x); 
     var config = { 
      $config1: $('#block'+x), 
      $config2: $('#block-bottom'+x) 
     }; 
     //more codes 
    }; 
    //Then you can call pages like this 
    var a = pages("page1"); 
    var b = pages("page2"); 
</script> 
相關問題