首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用.siblings取消选择Jquery切换按钮

使用.siblings取消选择Jquery切换按钮
EN

Stack Overflow用户
提问于 2013-11-23 09:29:25
回答 1查看 441关注 0票数 0

我正在尝试制作一个界面元素,其中有三个按钮。

只能选择一个按钮或一个按钮。也就是说,从一开始,按钮就会褪色,当用户单击其中一个就会亮起,另外两个就会褪色。

如果用户然后单击另一个按钮,任何其他按钮都会消失,用户单击的按钮会突出显示。这不是问题。

当我试图使一个当前突出显示的按钮返回到褪色状态时,如果用户单击它,那么问题就会出现,所以您将没有突出显示的按钮。

这就是我要去的地方

代码语言:javascript
复制
$('.gradeButtons button').click(function() {
        if (!$(this).siblings().hasClass('quoteGrading'))
        {
            $('.gradeButtons button').addClass('quoteGrading')
        }
        if (!$(this).hasClass('quoteGrading'))
        {
            $(this).addClass('quoteGrading')
        } else {

            $(this).removeClass('quoteGrading')
        }

    })

我的HTML:

代码语言:javascript
复制
<div class="control-group gradeButtons">
            <button type="button" class="btn btn-danger quoteGrading">H</button>
            <button type="button" class="btn btn-warning quoteGrading">W</button>
            <button type="button" class="btn btn-info quoteGrading">C</button>
            </div>

“quoteGrading”提供了消失的/非活动的效果。

如果只有一个或一个按钮可以高亮显示(没有应用“quoteGrading”类),我如何使它正常工作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-23 09:32:08

Live Demo

代码语言:javascript
复制
$(function() {
  $('.gradeButtons button').on("click",function() {
    $(this).siblings().removeClass('quoteGrading');
    $(this).toggleClass('quoteGrading');
    $("input.inp").hide();
    $("#"+this.id+"input").toggle($(this).hasClass("quoteGrading"));  
  });
});

使用

代码语言:javascript
复制
<div class="control-group gradeButtons">
  <button type="button" id="H" class="btn btn-danger">H</button>
  <button type="button" id="W" class="btn btn-warning">W</button>
    <button type="button" id="C" class="btn btn-info">C</button><br />
  <input type="text" class="inp" placeholder="H - message" id="Hinput" /><br/>  
  <input type="text" class="inp" placeholder="W - message" id="Winput" /><br/>  
  <input type="text" class="inp" placeholder="C - message" id="Cinput" /><br/>  
</div>

代码语言:javascript
复制
.quoteGrading { color:red }
.inp { display:none }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20160710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档