Jquery 在单击事件时切换类
Jquery switch class on click event
我有下面的例子:
<div class="filtrer">
<a class="bold">Url 1</a>
<a>Url 2</a>
</div>
第一个 url 处于活动状态,第二个 url 处于非活动状态,粗体表示选中。我应该只被允许按 Url 2,一旦我这样做,粗体类就会切换到 Url 2。
我已经尝试过但没有奏效的是:
$('.filtrer a').filter(':not(.bold)').on('click', function(){
var current = $('.filtrer a').filter(':not(.bold)');
var standby = $('.filtrer a.bold');
current.addClass('bold');
standby.removeClass('bold');
})
有谁知道为什么这不起作用?或者有优化的解决方案?谢谢
您正在处理动态元素选择器,因此需要使用基于委派的事件处理程序
var $as = $('.filter a');
$('.filter').on('click', 'a:not(.bold)', function () {
var current = $as.filter(':not(.bold)');
var standby = $as.filter('.bold');
current.addClass('bold');
standby.removeClass('bold');
})
演示:小提琴
它可以写成
var $as = $('.filter a');
$('.filter').on('click', 'a:not(.bold)', function () {
$as.toggleClass('bold');
})
演示:小提琴
$('.filter').on('click','a:not(.bold)',function(){
$(this).siblings().add(this).toggleClass('bold');
});
或者没有jQuery:
<div class="filter">
<input type="radio" name="url" id="url1"><label for="url1">url1</label>
<input type="radio" name="url" id="url2"><label for="url2">url2</label>
</div>
.filter input[type=radio]{
display:none;
}
.filter input[type=radio]:checked + label{
font-weight:bold;
}
例 1例 2
你拼错了"filter",在你的代码或HTML中更改它。
$('.filtrer').on('click',' a:not(.bold)', function(){
$('.filtrer a.bold').removeClass('bold');;
$(this).addClass('bold');
})
像这样:
$('.filter a').click(function() {
$('.filter a').removeClass('bold');
$(this).addClass('bold');
});
?
相关文章:
- 如何使用2个事件单击1个日历
- 在 javascript 事件单击后清空输入
- 在元素 SVG 中使用 JavaScript 或 jQuery 进行事件单击
- fullCalendar动态事件单击行为
- 错误:'这'对象不正确;在JQuery中单击事件-单击时的意外行为
- 如何启用事件单击仅在指定的小时范围内
- 完整日历事件单击未触发
- 打开选择之前的事件.(单击工作速度不够快)
- 在 JavaScript 中,函数不会在事件单击时触发
- 主干分组依据集合仅在一次事件单击后呈现
- 如何禁用地图上的所有鼠标事件(单击、悬停等)
- Fullcalendar将图标添加到事件而不触发事件单击
- 在将JQuery对象添加到DOM之前,请将事件单击到JQuery对象
- 如何模拟拖动事件(单击鼠标移动按钮)
- 如果可编辑为 false,则全日历事件单击处理程序不起作用
- onclick事件单击时未添加类
- 事件单击Kml Placemark
- 事件单击时没有运行数据库
- 在事件单击函数中添加href url
- 创建元素和事件(单击)