2017-07-30 81 views
1

已搜索答案很高而沒有運氣。JQuery - 使用之前聲明的變量作爲點擊函數

我想在兩個函數之間傳遞一個變量。第一個函數在頁面加載時運行,從谷歌腳本文件中提取設置。這部分我沒有任何問題。然而,我正在努力使用第二個函數,它運行'點擊'並需要第一個函數的一些變量。

任何指導表示讚賞。

<script> 
    $(function() { 

     google.script.run 
      .withSuccessHandler(loadSettings) 
      .withFailureHandler(showStatus) 
      .withUserObject($('#button-bar').get()) 
      .getSettings(); 

    function loadSettings(settings) { 

    $("select").data("option",settings.userInput1); 

     }; 

    $('#add1').click(function(){ 

    var option0 = $("select").data("option");} 

    ...etc. 

    }) 

</script> 
+0

定義變量,你想要哪個變量再次使用全球 – Ritz

+0

? – Ritz

+0

@Ritz我想重複使用settings.userInput1。我試着定義一個全局變量,但是我嘗試過的任何東西似乎都不起作用。 – Johnny

回答

3

我假設settings.userInput1是一個字符串。嘗試下面的

<script> 
var userInput =""; 

$(function() { 

     google.script.run 
      .withSuccessHandler(loadSettings) 
      .withFailureHandler(showStatus) 
      .withUserObject($('#button-bar').get()) 
      .getSettings(); 

    function loadSettings(settings) { 
    userInput = settings.userInput1; 
    $("select").data("option",settings.userInput1); 

     }; 

    $('#add1').click(function(){ 
    //you can now use userInput in this function 
    var option0 = $("select").data("option");} 

    ...etc. 

    }) 

+0

不幸的是,這是行不通的。我只是再試一次。儘管如此,我很難過! – Johnny

+1

嘗試添加console.log,並檢查變量的類型' – Ritz

+1

謝謝@Ritz。非常感激。我在執行全局變量的腳本中遇到了一個錯誤。你的解決方案是正確的。再次感謝。 – Johnny

2

如果其他解決方案都不能正常工作,那麼你應該走這條路 -

  • 做一個隱藏字段
  • 店在那個隱藏字段變量值在接下來的功能
  • 得到來自該字段的值 $("#hiddenfield_id").val();
+0

謝謝。非常有創意的做法。 – Johnny

+0

謝謝@RobertGagliano – Farsay