【问题标题】:Scoping issues with Jquery slideToggleJquery slideToggle 的范围问题
【发布时间】:2013-08-29 15:01:57
【问题描述】:

我正在使用 slideToggle 并想知道如何将变量传递给回调函数。它追溯未定义。有任何想法吗?干杯!

$('.drop-box .button').click(function(){

    var target = $(this).parent();

    var myVar = $(this);    

    target.slideToggle(300, function(myVar){

        alert(myVar); // undefined
    });

    return false;
});

【问题讨论】:

    标签: javascript jquery scope this


    【解决方案1】:

    从回调函数的参数中删除myVar。您不需要传入变量,因为它已经在范围内。

    target.slideToggle(300, function() {
        alert(myVar);
    });
    

    【讨论】:

      【解决方案2】:

      由于.slideToggle() 没有将任何参数传递给回调,您必须从回调的定义中删除参数myVar。由于回调参数隐藏了您的变量,原始变量又回到了作用域中。

      $('.drop-box .button').click(function(){
          var target = $(this).parent();
          var myVar = "hello";    
          target.slideToggle(300, function(){
              alert(myVar); // hello
          });
      
          return false;
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-21
        • 1970-01-01
        • 2014-10-24
        • 1970-01-01
        相关资源
        最近更新 更多