-1

このフィドルを見てください

http://jsfiddle.net/Qstuw/7/

ページに入ると、デフォルトで最初の回答が選択されています。2番目の答えを選択してみてください。次に、1番目に戻り、もう一度選択します。何が欠けているのかわかりませんが、最初の答えをもう一度選択することはできません。なにか提案を?

アップデート

最初の回答に基づく:

真の答えは、答えの間で「切り替え」られる必要があります。SOのように。アクティブなボタンをクリックするときは他のすべてのボタンを有効にする必要があり、クリックしたボタンは無効にする必要があります。クリックした回答にのみ緑色の境界線

4

2 に答える 2

2

このUPDATED FIDDLEを確認してください。動作させるために必要な変更を加えました。オブジェクトをキャッシュし、選択が変更されたときに新しい要素を割り当てています。

///

 AnswerDiv.on("click", ".NotSelectedAnswer", function(){
        $(this).button("disable");
        NotSelectedAnswerBtn= $(".NotSelectedAnswer");
        SelectedAnswerBtn= $(".SelectedAnswer");
        SelectedAnswerBtn.removeClass("SelectedAnswer").addClass("NotSelectedAnswer").button("enable");
        NotSelectedAnswerBtn.removeClass("NotSelectedAnswer").addClass("SelectedAnswer").button("disable");
        $("div.Answer[data-id="+SelectedAnswerBtn.data("id")+"]").toggleClass("SelectedDiv");
        $("div.Answer[data-id="+$(this).data("id")+"]").toggleClass("SelectedDiv");
    })

また、最初に変数をローカル変数に割り当てるようにしてください。これは良い習慣です。

于 2012-09-07T22:50:46.177 に答える
1

ボタンを再宣言しませんでした。あなたを近づける必要があります

AnswerDiv.on("click", ".NotSelectedAnswer", function(){
    $(this).button("disable");

    SelectedAnswerBtn.removeClass("SelectedAnswer").addClass("NotSelectedAnswer").button("enable");
    $("div.Answer[data-id="+SelectedAnswerBtn.data("id")+"]").toggleClass("SelectedDiv");
    $("div.Answer[data-id="+$(this).data("id")+"]").toggleClass("SelectedDiv");

    NotSelectedAnswerBtn=$(".NotSelectedAnswer");
    NotSelectedAnswerBtn.button('enable');
SelectedAnswerBtn=$(".SelectedAnswer");
AnswerDiv=$("div.Answer");
})
于 2012-09-07T22:40:08.347 に答える