奇怪的javascript问题

Strange javascript issue

本文关键字:问题 javascript      更新时间:2023-09-26

请看一下这个小提琴

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

当您进入页面时,默认情况下会选择第一个答案。试着选择第二个答案。然后返回第1位并再次选择。我不明白我错过了什么,但我无法再次选择第一个答案。有什么建议吗?

更新

基于第一个答案:

真正的答案必须是";切换的";答案之间。就像SO一样。当你点击某个活动按钮时,所有其他按钮都必须启用,而你点击的按钮必须禁用。绿色边框仅在您单击的答案上

检查此更新的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");
    })

还要确保最初将var分配给局部变量。。这是一个很好的做法。

您没有重新声明按钮。应该让你更接近

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