我正在制作一个灯箱代码,要求我使用jquery addClass
,我还需要使用removeClass
,但我无法做到这一点。我的代码是
var d = this.buttons;
if (c("body").find("#lightbox-buttons").length < 1) {
this.list = c(a.template || this.template).addClass(a.position || "top").prependTo(g.utility.find("> div"));
d = {
prev: this.list.find(".btnPrev").click(g.prev),
next: this.list.find(".btnNext").click(g.next),
play_fast: this.list.find(".btnFast").click(g.play_fast).addClass(g.player_fast.isActive ? "btnPlayOn" : "")
}
就像在这一行中我还需要使用removeClass从一个按钮中删除一个类。
play_fast: this.list.find(".btnFast").click(g.play_fast).addClass(g.player_fast.isActive ? "btnPlayOn" : "")
答案 0 :(得分:1)
我认为你想要的是:
var d;
if (c("body").find("#lightbox-buttons").length < 1) {
this.list = c(a.template || this.template).addClass(a.position || "top").prependTo(g.utility.find("> div"));
d = {
prev: this.list.find(".btnPrev").click(g.prev),
next: this.list.find(".btnNext").click(g.next),
play_fast: this.list.find(".btnFast").click(g.play_fast).addClass(g.player_fast.isActive ? "btnPlayOn" : "")
};
//this assumes that the buttons you need to remove the class from all have the same class, in this example 'btnToRemoveClassFrom'
this.list.find('.btnToRemoveClassFrom').removeClass('classToRemove');
}
或者,如果您需要删除课程的按钮不在列表中,则最后一行将是:
c('.btnToRemoveClassFrom').removeClass('classToRemove');
首先检查是否存在btnPlayOn
类,如评论中所述,使用:
if (this.list.find('.btnPlayOn').length > 0) {
c('.btnToRemoveClassFrom').removeClass('classToRemove');
}
顺便说一下,为什么c
被用作jQuery的速记变量呢?在很多情况下,使其成为$
之外的其他内容是有意义的,但至少选择$j
或远程有意义的内容。
编辑:我认为这个版本更具可读性:
var d;
if (c("body").find("#lightbox-buttons").length < 1) {
this.list = c(a.template || this.template).addClass(a.position || "top").prependTo(g.utility.find("> div"));
var btnFast = this.list.find(".btnFast");
d = {
prev: this.list.find(".btnPrev").click(g.prev),
next: this.list.find(".btnNext").click(g.next),
play_fast: btnFast.click(g.play_fast)
};
btnFast.addClass(g.player_fast.isActive ? "btnPlayOn" : "");
//this assumes that the buttons you need to remove the class from all have the same class, in this example 'btnToRemoveClassFrom'
if (this.list.find('.btnPlayOn').length > 0) {
this.list.find('.btnToRemoveClassFrom').removeClass('classToRemove');
}
}
答案 1 :(得分:0)
尝试类似
的内容this.list.find(".btnFast").click(function() {
g.play_fast();
$('#el_id_here').removeClass('class_name_to_remove');
}).addClass(g.player_fast.isActive ? "btnPlayOn" : "");
或
this.list.find(".btnFast").click(function() {
$('#el_id_here').removeClass('class_name_to_remove');
g.play_fast();
}).addClass(g.player_fast.isActive ? "btnPlayOn" : "");