在第一次单击打开下拉菜单的按钮时更改类
Change Class on first click of a button that opens a dropdown menu?
我希望有一个按钮的图标类更改仅在按钮事件的第一次点击,这也将ajax .put一个字段到数据库.
<div class="btn-group check-btns checkIt">
<button type="button" class="btn btn-xs dropdown-toggle" data-toggle="dropdown">
<span class="glyphicon glyphicon-unchecked"></span>
</button>
<ul class="dropdown-menu" role="menu">
<li><a href="#">List Item 1</a></li>
</ul>
</div>
测试了这个简单的。先点击(http://jsfiddle.net/57268/1/),但认为Bootstrap内置的下拉。open class开关可能会防止这种情况发生。
$(document).ready(function () {
$(function () {
$('.checkIt').on('click', function () {
但是将其更改为收听正在显示的下拉菜单还没有工作http://jsfiddle.net/57268/:
$(document).ready(function () {
$(function () {
$('.btn-group.check-btns.checkIt').on('show.bs.dropdown', function () {
console.log('checkIt clicked');
var $this = $(this);
var $that = $(this).children('.check-btns').children('.btn').find('.glyphicon')
if ($that.hasClass('.glyphicon-unchecked')) {
$that.removeClass('.glyphicon-unchecked').addClass('.glyphicon-check');
console.log('now checked icon');
$this.removeClass('.checkIt').addClass('.checkedIt');
console.log('now checkedIt class');
alert('checked and checkedIt .. now an ajax .put call');
}
})
});
});
Try
小提琴演示
hasClass
, removeClass
, addClass
取className非选择器
。$el.addClass('class')
正确,$el.addClass('.class')
不正确
$(document).ready(function () {
$('.checkIt').on('click', function () {
console.log('checkIt clicked');
var $this = $(this),
$that = $(this).find('.glyphicon'); //changed to .find() only
if ($that.hasClass('glyphicon-unchecked')) {
$that.removeClass('glyphicon-unchecked').addClass('glyphicon-check');
console.log('now checked icon');
$this.removeClass('checkIt').addClass('checkedIt');
console.log('now checkedIt class');
alert('checked and checkedIt');
}
});
});
要解释Tushar的解决方案,您的原始代码有两个问题:
-
用于定义$的链使用了.children('.check-btns') -这在$this元素子元素中查找类为check-btns的元素,但$this实际上是已经有这个类的div(您正在查找的元素在它自己的子元素中)
-
在hasClass中,您正在寻找class "。
-这是不正确的,类名实际上是"glyphicon-unchecked",点只在需要选择器时使用。
相关文章:
- JavaScript下拉菜单-点击按钮并根据所选值重定向到url
- 下拉菜单在菜单按钮的边缘闪闪发光
- 我尝试将引导下拉按钮添加到 但下拉菜单不起作用.我该怎么做
- 下拉菜单转换为单选按钮,不再触发特定功能
- Bootstrap下拉菜单不选择元素.需要下拉按钮组设计
- 引导程序3-下拉菜单项中的取消按钮
- 单击单选按钮时不会禁用下拉菜单
- 如何通过单击唯一按钮保存下拉菜单/复选框菜单选项和占位符值
- 单选按钮表单代码和下拉菜单代码
- 选择单选按钮或下拉菜单项时自动更新PHP变量
- 带有父按钮的自动下拉菜单,可将您带到引导程序中的另一个页面
- 为什么我的 html 下拉菜单和按钮不可点击
- 停用下拉菜单中所选值的“提交”按钮
- 单击下拉菜单按钮时引导打开链接
- 无法通过javascript单击按钮时获得下拉菜单
- PHP / 如何使用提交按钮发布下拉菜单选项
- 如何在单击按钮时重置下拉菜单
- 手风琴下拉菜单中的引导模式弹出按钮
- 如何使引导按钮下拉菜单可选择的键盘
- 为什么我的悬停按钮下拉菜单在我鼠标悬停时不保持打开状态