-3

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" : "")
            }

この行のように、もう1つのボタンからクラスを削除するにはremoveClassを使用する必要もあります。

play_fast: this.list.find(".btnFast").click(g.play_fast).addClass(g.player_fast.isActive ? "btnPlayOn" : "")

4

2 に答える 2

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');
    }
}
于 2013-02-25T09:34:03.527 に答える
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" : "");
于 2013-02-25T08:56:32.063 に答える