- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 HTML 表单,开头如下:
<div class="row form-group">
<label for="real_name" class="col-sm-3 control-label">Name</label>
<div class="col-sm-5">
<input type="text" class="form-control require_name" name="real_name" id="real_name" maxlength="100">
</div>
<div class="col-sm-4 btn-group">
<div class="btn btn-default btn-private btn-warning">
<label for="private_check">Private</label>
<input type="radio" id="private_check" class="privacy_check" name="privacy[real_name_privacy]" value=0 checked="checked" />
</div>
<div class="btn btn-default btn-public">
<label for="public_check">Public</label>
<input type="radio" id="public_check" class="privacy_check" name="privacy[real_name_privacy]" value=1 />
</div>
</div>
</div>
<div class="row form-group">
<label for="display_name" class="col-sm-3 control-label">Artist Name</label>
<div class="col-sm-5">
<input type="text" class="form-control require_name" name="display_name" id="display_name" value="This guy" maxlength="100">
</div>
<div class="col-sm-4 btn-group">
<div class="btn btn-default btn-private">
<label for="private_check">Private</label>
<input type="radio" id="private_check" class="privacy_check" name="privacy[display_name_privacy]" value=0 />
</div>
<div class="btn btn-default btn-public btn-warning">
<label for="public_check">Public</label>
<input type="radio" id="public_check" class="privacy_check" name="privacy[display_name_privacy]" value=1 checked="checked" />
</div>
</div>
</div>
等等,大约有十几个。对于“btn-group”中的那些 .btn div,我有这个 jQuery:
$(".btn").click(function() {
$(this).find("input").attr('checked', true);
$(this).siblings().find("input").attr('checked', false);
$(this).toggleClass('btn-warning btn-default');
$(this).siblings().toggleClass('btn-default btn-warning');
});
当单击 .btn 时,应该切换每个 .btn 上的基础输入,并将其类从 .btn-warning 切换到 .btn-default,具体取决于是否已检查。上面的代码显然不起作用:单击第一个 .btn 将切换 .btn 中其同级的属性,但此后的每个 .btn 将切换 DOM 中其上方的每个 .btn,并且toggleClass 不执行任何操作在我单击的 .btn 组上,但单击其下面的 btn 组中的按钮也会更改上面的按钮。我尝试以困难的方式做到这一点,使用嵌套 div 检查每个按钮是否根据其底层单选按钮的状态删除或添加了必要的类,但得到了相同的结果。我认为问题出在siblings()上,但是有人知道如何在不遍历整个DOM寻找每个.btn的情况下完成这项工作吗?
最佳答案
尝试
jQuery(function ($) {
$(".btn").click(function (e) {
if (!$(this).find("input").is(':checked') || !$(this).is('.btn-warning')) {
$(this).find("input").prop('checked', true);
$(this).siblings().addBack().toggleClass('btn-default btn-warning');
}
});
});
演示:Fiddle
更新:
第二个问题与单选按钮的重复 ID 有关,您有多个 ID 为 private_check
的元素。和publi_check
以及相应的label
有for
导致问题的属性集将 ids 更改为 private_check<n>
和public_check<n>
这样就只有一个元素具有特定的 ID。
<label for="private_check1">Private</label>
<input type="radio" id="private_check1" class="privacy_check" name="privacy[real_name_privacy]" value=0 checked="checked" />
关于jQuery sibling ,toggleClass 影响其他 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20038840/
这是我真正想要发生的事情: 页面加载时先显示div当用户单击“向上箭头”时,箭头切换为“向下箭头”并隐藏 div。当用户单击“向下箭头”时,将显示该 div。 但是,虽然我确实让页面在加载页面时正确显
我在获取toggleClass的缓动属性时遇到问题上类。我已经在这个网站和其他网站上进行了搜索,但仍然无法让它按预期工作。类切换得很好,但不能顺利地缓入或缓出。 这是我的代码示例:DEMO 以下是我在
我有一些我想要的li,当我将鼠标悬停在每个li上时,仅针对每个下摆而不是全部切换类。 现在,当我将鼠标悬停在每个 li 上时,所有 LI 都会获得切换的类。这是 HTML 和 jQuery Fa
您好,我有一些名为 archbar2 的 div,我想使用 .each 循环更改它,但我在 javascript 方面没有任何反应。之前一切正常,因为警报效果很好。为什么我的类(class)没有改变?
我正在尝试设置一个视频库,当我将鼠标悬停在视频缩略图上时,我希望播放按钮从不透明度:.3 更改为不透明度:1。我试图通过使用带有toggleClass() 的jQuery 脚本来实现此目的。我尝试过使
我有两个容器,每个容器都有自己的标题和箭头图标来指示可以进行切换的方向。 加载时,容器 1 打开并带有向上箭头图标(表示内容可以折叠)。加载时,容器 2 用向下图标关闭(表示内容可以展开)。 当我单击
我之前曾问过类似的问题,其答案部分解决了我的问题。 但是现在我需要扩展代码。 当只有两个 div 时,此代码会切换 div 的可见性,但是当添加第三个 div 时,当我想单独显示每组 div 时,它会
我正在使用一些非常简单的 .toggleClass() 和 1 秒的动画。除了动画之外,一切正常。我觉得这真的很有趣。 看看我的fiddle ! $(function(){ $('#main_but
通过单击按钮,div 通过 css 属性更改其位置。但是,我希望 div 幻灯片能够从一个位置动画到另一个位置。 注意:#window 必须具有 width:100%; 和 height:100%;,
我是 jQuery 的新手,我在 Stack 上搜索过类似的问题,但没有找到这个特定的(而且我确信很常见)问题。 我有一个具有默认类别的项目列表。我想使用toggleClass 添加翻转效果。问题是所
我有这个问题,正如标题所说,我不明白为什么toggleClass()不起作用,相反,如果我使用removeClass()或addClass()一切正常。 $('div').on('click', '.
我想要toggle a class基于某些条件我必须根据已处理元素的 ID 计算: $(".centre li").toggleClass("highlight", someFunction(x));
我在使用 jQuery 的 toggleClass() 和 CSS 来显示和隐藏表单的搜索表单上进行简单的显示/隐藏。这很简单,比如: $('#site-search-toggle').click(f
大家好,我有这个代码 panelPlusK.append('click To change the style'); $('#foo').click(function() { $('.agar
我在 jQuery 中遇到了 toggleClass 的问题。 代码如下: $(".guzik").click(function() { $("#third").toggleClass('.p
所以我遇到的问题很简单。我有一个跨度 Show More使用此元素,我正在扩展一个部分以显示更多文本。 我遇到的问题是我想在页面的其他部分使用此功能。 这是我用来激活 toggleClass 的 jq
我让我的链接看起来像标签,这实际上是一个过滤器。这是有问题的部分: Review
所以基本上我想做的是在单击复选框时创建一个简单的 toggleClass,但问题是它删除了该类,但没有添加回该类。 这是一个示例代码: $('#task-checkbox').click(functi
我的页面上有 4 个 div 和一个按钮。如果您单击一个 div,它会切换类。 单击按钮时,我希望所有已突出显示的 div 保持突出显示状态,但我不希望在单击按钮后有更多的 div 切换类。 有办法吗
所以我得到了一些导航,其中包含 float 在传统 anchor 旁边的表单复选框。如果未选中相应的复选框,我想添加一个类(基本上将设置样式以使 anchor 标记变暗)。系统地执行此操作的最佳方法是
我是一名优秀的程序员,十分优秀!