从另一个函数调用var

时间:2012-08-20 14:05:58

标签: jquery

我需要从另一个函数调用id值 这里是代码

$("p").hover(function() {
    var i = $(this).text();
    $("#o").show();
}, function() {
    $("#o").delay(2000).fadeOut("slow");
});
$("#o").click(function() {
    $(".display").append(i);
});​

我需要在“.display”类div上显示“i”值。 任何人都可以帮助我..

4 个答案:

答案 0 :(得分:4)

只需在外面声明i ..

var i = '';
$("p").hover(function() {
   i = $(this).text();
   $("#o").show();
}, 
function() {
   $("#o").delay(2000).fadeOut("slow");
});

$("#o").click(function() {
   $(".display").append(i);
});

答案 1 :(得分:1)

要添加Vega的答案,我会将其包装在一个匿名函数中,以避免污染全局范围。

(function() {
    var i = '';
    $("p").hover(function() {
        i = $(this).text();
        $("#o").show();
    }, function() {
        $("#o").delay(2000).fadeOut("slow");
    });
    $("#o").click(function() {
        $(".display").append(i);
    });​

})();

外部函数返回后,内部回调函数仍然可以访问该变量,因为javascript有一个名为closures的好东西。

答案 2 :(得分:1)

创建一个闭包而不是全局变量......

(function (i) {

    $("p").hover(function() {
       i = $(this).text();
        $("#o").show();
    }, function() {
        $("#o").delay(2000).fadeOut("slow");
    });

    $("#o").click(function() {
        $(".display").append(i);
    });​

}(""));

答案 3 :(得分:0)

通过将i移到函数之外,只需使用变量范围。

var i;
$("p").hover(function() {
    i = $(this).text();
    $("#o").show();
}, function() {
    $("#o").delay(2000).fadeOut("slow");
});
$("#o").click(function() {
    $(".display").append(i);
});