0

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

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

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

    var myVar = $(this);    

    target.slideToggle(300, function(myVar){

        alert(myVar); // undefined
    });

    return false;
});
4

2 回答 2

2

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

target.slideToggle(300, function() {
    alert(myVar);
});
于 2013-08-29T15:05:13.890 回答
0

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

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

    return false;
});
于 2013-08-29T15:07:33.243 回答