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)
看起来你在这部分遇到了麻烦:
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