-1

我需要从另一个函数调用 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

4 回答 4

4

只需i在外面声明..

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

$("#o").click(function() {
   $(".display").append(i);
});
于 2012-08-20T14:07:15.503 回答
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 有一个很好的东西叫做闭包

于 2012-08-20T14:09:39.360 回答
1

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

(function (i) {

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

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

}(""));
于 2012-08-20T14:10:32.557 回答
0

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

var i;
$("p").hover(function() {
    i = $(this).text();
    $("#o").show();
}, function() {
    $("#o").delay(2000).fadeOut("slow");
});
$("#o").click(function() {
    $(".display").append(i);
});
于 2012-08-20T14:11:29.833 回答