2

假设我有这两个功能:

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是一种聪明的方式。

4

1 回答 1

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/

于 2012-05-03T15:30:44.540 回答