2013-08-29 56 views
0

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

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

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

    var myVar = $(this);  

    target.slideToggle(300, function(myVar){ 

     alert(myVar); // undefined 
    }); 

    return false; 
}); 

回答

2

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

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

太棒了,谢谢! – JCraine

0

由于.slideToggle()不中你必须从你的回调的定义中删除了参数myVar回调传递任何参数。由于回调参数隐藏了变量,所以原始变量回到范围。

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

    return false; 
}); 
+0

感谢您的信息! – JCraine