jQuery如果hasclass然后函数

Com*_*rea 2 jquery if-statement class function

这是一个动画,只有当div rip_tab具有类'rip_tab_ripped'时才会触发,该类在单击div后应用.但是,即使在切换rip_tab_ripped类之前,动画也会触发.每个函数都单独工作,没有if子句.任何帮助,将不胜感激 -

var sauceSquirt = {
    init: function() {

        $("#rip_tab").click(function() {
            $(this).toggleClass("rip_tab_ripped");
        });



        function fireA() {
            $("#sauceRed").switchClass("sauce_hide", "sauceRedGo", 500)
        }

        function fireB() {
            $("#sauceBlue").switchClass("sauce_hide", "sauceBlueGo", 500)
        }

        if ($('#rip_tab').hasClass("rip_tab_ripped")) {


            $('#packet').click(function() {

                var events = [fireA, fireB];

                //declare counter
                if (!this.counter) {
                    this.counter = 0;
                }

                events[this.counter]();
                this.counter = (this.counter + 1) % 3;
            });



        }

    }

}

$(document).ready(function() {
    sauceSquirt.init();

});?
Run Code Online (Sandbox Code Playgroud)

sab*_*ker 8

看起来你在这部分遇到了麻烦:

if ($('#rip_tab').hasClass("rip_tab_ripped")) {
    $('#packet').click(function() {

       var events = [fireA, fireB];

       //declare counter
       if(!this.counter) { this.counter = 0; }

       events[this.counter]();
       this.counter = (this.counter + 1) % 3;
    });
}
Run Code Online (Sandbox Code Playgroud)

你能把它改成:

$('#packet').click(function() {
    if ($('#rip_tab').hasClass("rip_tab_ripped")) {

           var events = [fireA, fireB];

           //declare counter
           if(!this.counter) { this.counter = 0; }

           events[this.counter]();
           this.counter = (this.counter + 1) % 3;
    }
    return false;
});
Run Code Online (Sandbox Code Playgroud)

你也可以看看jQuery Promise