如何删除单击的控件上的特定类
How to remove a specific class on the clicked control?
我正试图删除被点击控件上的一个特定类,特别是我有这样的html结构:
<div id="resource">
<div class="selected"></div>
<div class="selected"></div>
</div>
这是我的代码:
$(document).on('click', '.selected', function() {
if ($(this).hasClass('selected')) {
$(this).removeClass('selected'); //remove the specific class
} else
{
$('#resource .selected').removeClass('selected'); //remove class of all control
$(this).addClass('selected'); //add class to the clicked control
}
});
这是css类:
.selected {
background-color: red;
}
你怎么能看到,如果我点击一个div,这个类就被正确添加了,但如果我有一个已经设置了.selected
类的div,然后点击没有这个类的div时,代码就不会删除其他div的类。为什么??
这是小提琴。
您的点击事件仅适用于.selected
类。您应该使用#resource div
单击而不是.selected
。试着如下。
$(document).on('click', '#resource div', function() {
if ($(this).hasClass('selected')) {
$(this).removeClass('selected');
} else
{
$('#resource .selected').removeClass('selected');
$(this).addClass('selected');
}
});
更新的FIDDLE
您可以通过添加一个额外的类来使这变得更简单。看看这把小提琴。错误是所选的类被删除。这意味着您的点击事件也将被删除。使用2个类可以解决此问题。
Javascript
$(document).on('click', '.item', function() {
$('.item').removeClass('selected');
$(this).addClass('selected'); //add class to the clicked control
});
Html
<div id="resource">
<div class="item">test</div>
<div class="item">test</div>
</div>
<div id="resource">
<div class="container"></div>
<div class="container"></div>
</div>
$(document).on('click', '.container', function() {
$(this).toggleClass('selected');
})
将ur的"selected"div类名更改为"container"或您想要的任何名称。为那些具有"container"或您为tatdiv 指定的任何名称的div添加click listener
相关文章:
- 获取中继器控件ASP.Net中显示的单击项目文本框
- 如何在Firefox中禁用视频的单击和双击控件
- 调用按钮单击事件 ajax 加载的用户控件
- 如何让 VB Web 浏览器控件单击无法在控件中手动单击但可以在实际 IE 窗口中单击的按钮
- 动态观察控件.js导致模型在单击旋转时消失
- 无法单击单选按钮控件
- Javascript 禁用作为 asp.net 控件加载的元素的内联单击
- 如何在单击任何其他控件时清除文本
- 自定义指令如何知道它是否已单击另一个控件
- 如果我单击文档中的任何其他 HTML 控件,tabIndex 将无法正常运行
- WinJS 浮出控件不断关闭 - 无法单击控件
- 如何在打开模式对话框时禁用控件单击事件
- 如何使用传单中的自定义控件切换可单击的标记属性
- 如何删除单击的控件上的特定类
- 单击超链接时,需要将控件传递给方法
- 如何获取单击控件的所有html内容
- 单击另一个对象时切换jQuery控件
- 在Next/Prev控件单击事件时从bxSlider中移除一个滑块
- Jquery服务器控件单击事件未启动
- 如何停止父gridview事件时,单击子控件单击