jQuery Click (): cambie los argumentos de una función después de que se haya ejecutado

Digamos que tengo estas dos funciones:

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)
        });

Quiero la primera función [function z] para ser activado con diferentes argumentos y "desvincular" su anterior .click() event después de la animación.


Para que la primera vez haga clic en #d, #e se mueve (a+b+c)%. La segunda vez haga clic en #d, #e se mueve (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)%. La tercera vez ...

He intentado usar unbind pero no parecía encajar en esta situación. Terminé escribiendo más y más códigos desordenados. no pienso usar unbind es una forma inteligente.

preguntado el 03 de mayo de 12 a las 16:05

1 Respuestas

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);
    });
});

la función "uno()" se asegurará de que su evento de "clic" se desvincule después de hacer clic en él por primera vez.

Ref: http://api.jquery.com/one/

contestado el 03 de mayo de 12 a las 16:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.