2013-08-23 155 views
0

我有一個通過.click函數檢索的變量,我想將它傳遞給另一個函數,但是我無法正確傳遞它,因爲當我調用其他函數時什麼也沒有發生。JQuery將一個變量從函數傳遞到函數

var className; 
var flavor; 
(function ($) { 

    Drupal.myTest = Drupal.myTest|| {}; 

    Drupal.behaviors.myTest= { 

    attach: function (context, settings) { 

      Drupal.myTest.myFunction= function (className) { 
      var passedVar= className; 
      alert(passedVar); 
      }; 



      $('.buttons').on('click', function(event) { 
      className = $(this).attr('class'); 
      }); 

      $('#test').on('click, function(event) { 
     Drupal.myTest.myFunction(); 
      }); 

    } 

    }; 

}(jQuery)); 

回答

1

功能嘗試

(function ($) { 
    var className; 
    var flavor; 

    Drupal.myTest = Drupal.myTest|| {}; 

    Drupal.behaviors.myTest = { 
     attach: function (context, settings) { 
      Drupal.myTest.myFunction= function (className) { 
       var passedVar= className; 
       alert(passedVar); 
      }; 

      $('.buttons').on('click', function(event) { 
       className = $(this).attr('class'); 
      }); 

      $('#test').on('click', function(event) { 
       Drupal.myTest.myFunction(className); 
      }); 
     } 
    }; 

}(jQuery)); 
+0

這看起來不起作用。請問我可以看看我的編輯,上面提到了我的問題,您可以更好地表示我的代碼? – CR47

+1

@ CR47您需要在調用'Drupal.myTest.myFunction(className);' –

+1

@ CR47中傳遞'className'作爲參數,這是一個參數定義...不存在...您調用該函數的位置。 ('click',function(event){ Drupal.myTest.myFunction(className); });' –

0

聲明之外的$(document).ready()

<script type="text/javascript"> 
    var myPassedVar; 

    $(document).ready(function() { 
     $('.buttons).click(function() { 
      var className = $(this).attr(class); 
     }); 

     myFunction = function (className) { 
      myPassedVar = className; 
      alert(myPassedVar); 
     }; 

     $('#test').click(function() { 
      myFunction(className); 
     } 
    }); //END $(document).ready() 
</script> 
+0

迪你是說聲明變量? – CR47

+0

文件準備就緒。聲明它,創建它,給它賦一個值,只要確保它存在於$(document).ready()之外 - 或者它的簡寫版本:$(function() – gibberish

+0

那似乎沒有用的技巧 – CR47

相關問題