0

人々

ここに、評価(短所、平均、長所)のJSコードと、これらすべてのパラメーターのボタンがあります。

しかし、私には問題があります。デメリット、アベレージ、アドバンテージのボタンをクリックすると、前にこれらのボタンをクリックすると色が失われる必要があります。また、他のボタンは色を失う必要があるため、アベレージまたはアドバンテージをクリックしても同じです。クリックして色を取得します。どこかに問題があります。私は1つのjsfiddleにコードを入れました:

http://jsfiddle.net/mwsvP/

$(".ca_button, .ca_button1").click(function () {

    $this = $(this);

    if ($this.is("a")) {
        $this = $this.parent();
    }

    $par = $this.parent();

    $par.find(".ca_button, .ca_button1").css("background-color", "#bababa");

    if ($(this).hasClass("ca_button1")) {
        $this.find("a").css("background-color", "#0F0");
    } else {
        $this.find("a").css("background-color", "#F00");
    }

    return false;

});
4

1 に答える 1

0

問題は、この変数を定義する方法にあると思います。

$this = $(this);

次のようにすると、よりうまく機能するはずです。

var t = $(this);

そして、t現在使用しているすべての場所で使用します$this

$(".ca_button, .ca_button1").click(function () {

    var t = $(this);

    if (t.is("a")) {
        t = t.parent();
    }

    $par = t.parent();

    $par.find(".ca_button, .ca_button1").css("background-color", "#bababa");

    if ($(this).hasClass("ca_button1")) {
        t.find("a").css("background-color", "#0F0");
    } else {
        t.find("a").css("background-color", "#F00");
    }

    return false;

});

更新された jsFiddle は次のとおりです: http://jsfiddle.net/mwsvP/2/

于 2013-03-14T14:26:10.660 に答える