2013-08-23 159 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

相关问题