jQuery Click():在函数执行后更改函数的参数

时间:2012-05-03 15:20:49

标签: jquery function arguments

假设我有这两个功能:

function z(a,b,c){
    $("#d").click(function(){
        var sum = a+b+c;
        x(sum)
    }

    function x(first){
        var second = first*(first+1);
        var third = second*(second+1);
        $("#e").animate({
            "left": "+=first%"
        },{
            complete:function(){
                z(first, second, third)
        });

我希望第一个函数[function z]使用不同的参数触发,并在动画后“取消绑定”其之前的.click() event


因此,第一次点击#d#e移动(a+b+c)%。 第二次点击#d#e移动(a+b+c)+(a+b+c)*(a+b+c+1)+(a+b+c)*(a+b+c+1)*((a+b+c)*(a+b+c+1)+1)%。第三次......

我尝试使用unbind,但似乎不适合这种情况。我最终编写了越来越多的杂乱代码。我不认为使用unbind是一种聪明的方式。

1 个答案:

答案 0 :(得分:3)

function z(a,b,c){
        x(a+b+c);
}

function x(first) {
    var second = first*(first+1);
    var third = second*(second+1);
    $("#e").animate({
    "left": "+=first%"
    },{
    complete:function(){
    z(first, second, third)
});

$(document).ready(function(){
    $("#d").one("click",function(){
        z(1,2,3);
    });
});

“one()”函数将确保您的“点击”事件在您第一次点击它后不受约束。

参考:http://api.jquery.com/one/