jquery - 如何访问稍后通过click函数定义的变量?

时间:2015-03-20 16:32:40

标签: jquery

我写了这段代码..

$(document).ready(function() {
    var $newdiv;
    var clck = 16;

    for (var i = 0; i < clck; i++) {
        $newdiv = $('<div class="ball" />').fadeIn(500 * i);
        $('#all').append($newdiv);
    }

    $('.ball').mouseover(function(){
        $(this).animate({'backgroundColor' : "#b0e0e6"}, 500);
    });

    $('#but1').click(function() {
        $('.ball').remove();
        clck = prompt("Insert #..", "max. 64");
    });

    $('#pall').html("this is..." + clck);
});

..而我不知道的是,如何在点击功能中使用提示重新定义“clck”变量,以便我在开头的for循环中有新的数字。有可能吗?
..最后一个命令只是为了查看它是否在点击功能之外工作,因为如果你在该功能中添加一个警报,你得到你的号码。尽管它是一个全局变量,它似乎只能在它之外工作 ..我正在寻找2天的答案,但没有找到任何可行的方法。
..谢谢你的回答,请抱歉我的英文

2 个答案:

答案 0 :(得分:0)

  

有可能吗?

没有。你不能回到过去。您可能想了解functions。您可以将for循环放在函数中,然后再次调用它:

$(document).ready(function() {
    var $newdiv;

    function append(clck) {
        for (var i = 0; i < clck; i++) {
            $newdiv = $('<div class="ball" />').fadeIn(500 * i);
            $('#all').append($newdiv);
        }
    }

    append(16);

    $('.ball').mouseover(function(){
        $(this).animate({'backgroundColor' : "#b0e0e6"}, 500);
    });

    $('#but1').click(function() {
        $('.ball').remove();
        append(prompt("Insert #..", "max. 64"));
    });
});

答案 1 :(得分:-3)

你必须使用.live() JQuery documentation