javascript - 测验应用程序中的按钮状态

标签 javascript jquery css

我正在做一个类似于 buzzfeed 测验的测验,比如 THIS .我已经计划好了逻辑,我可以看出我应该如何对其进行编码以使其与链接中的行为类似,但我对按钮状态有疑问。

这是我的一小段代码:sample quiz

$(document).ready(function () {
                $('#btn1, #a1').click(function () {
                   $('#a1').removeClass("fadeout");                    
                   $('#a1').addClass("highlight");

                    $('#a2').removeClass("highlight");  
                    $('#a3').removeClass("highlight");  
                    $('#a4').removeClass("highlight");  
                    $('#a5').removeClass("highlight");  
                    $('#a6').removeClass("highlight");  
                   $('#a2').addClass("fadeout");
                   $('#a3').addClass("fadeout");
                   $('#a4').addClass("fadeout");
                   $('#a5').addClass("fadeout");
                   $('#a6').addClass("fadeout");
                   btn1.checked = "true";
                   btn2.checked = "";
                   btn3.checked = "";
                   btn4.checked = "";
                   btn5.checked = "";
                   btn6.checked = "";
                   window.alert(document.write(getElementById("btn1").value));

编码单个问题似乎不是 ff 的问题:在悬停时更改颜色、减少其他选项的不透明度、在选择后更改为蓝色等...但是当我添加更多问题时,我意识到我对于每个问题的每个选择,都必须使用 addClass 和 removeClass 来实现按钮的效果,如您所见,这对编码来说不太实用。

还有其他更有效的方法吗?

最佳答案

使用问题 div 的点击事件,您可以通过使用 $this 关键字来应用类。

$(document).ready(function () {
    $('.a_choice').click(function () {
        $(this).siblings().removeClass("highlight");
        $(this).siblings().addClass("fadeout");

        $(this).children('input').prop('checked', true);
        $(this).addClass('highlight');
        $(this).removeClass("fadeout");
    });
});

参见 http://learn.jquery.com/javascript-101/this-keyword/

关于javascript - 测验应用程序中的按钮状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24730864/

相关文章:

jquery - Accordion 式脚本的奇怪故障

html - Bootstrap 切换菜单图标在小型设备上不起作用

javascript - 返回多个函数

javascript - jquery 动画不起作用

javascript - 将 bool 值分配给 html 表条目

javascript - 缩放时使用 SVG 的一部分裁剪另一部分

html - 选择最后一个连续的 sibling

javascript - 如何在 Phoenix 中使用 d3.js?

javascript - 根据选择框选择定义隐藏字段值

javascript - 更改页面滚动时突出显示的导航栏按钮(不起作用)