Javascript JQuery延迟了一个事件,以便使用“click”事件处理程序检索DOM对象
我的webapp上有两个问题,它们都是单选输入类型,但外观和某些属性与引导按钮相同。Javascript JQuery延迟了一个事件,以便使用“click”事件处理程序检索DOM对象,javascript,jquery,twitter-bootstrap,Javascript,Jquery,Twitter Bootstrap,我的webapp上有两个问题,它们都是单选输入类型,但外观和某些属性与引导按钮相同。 每次单击时,我都要检查页面上选择的两个按钮。 当我点击标签时,标签label接收类.active(我猜是从引导框架中)。我想用它来过滤用户每次点击时选择的两个按钮 问题是,如果我单击选项1,在第一次单击时,按钮会被激活,但jQuery无法检索元素 然后,如果我重新单击选项1或选项2,它将正确地找到元素选项1(即使我单击了2) 在我单击的选项和jQuery找到的内容之间有一个一步的延迟 这是JS 注意:我还尝
每次单击时,我都要检查页面上选择的两个按钮。
当我点击标签时,标签
label
接收类.active
(我猜是从引导框架中)。我想用它来过滤用户每次点击时选择的两个按钮
- 问题是,如果我单击选项1,在第一次单击时,按钮会被激活,但jQuery无法检索元素李>
- 然后,如果我重新单击选项1或选项2,它将正确地找到元素选项1(即使我单击了2)李>
input
标记的类checked
进行过滤,并观察到完全相同的行为
$(function() {
$("label.btn").click(function() {
console.log($("label.active").children()[0].id);
});
})
下面是生成HTML的哈巴狗
.btn-group(data-toggle='buttons')
label.btn.btn-primary
input#option1(type='radio', name='lorem')
|Option 1
label.btn.btn-primary
...
注:正在等待编辑答案。。。解决方案是将
单击
替换为更改
可能与添加事件侦听器的顺序有关。它们将按照添加到元素的顺序执行
尝试添加小延迟
范例
$(“按钮”)。单击(函数(){
变量$btn=$(此)
log('单击时有类=',$btn.hasClass('active');
setTimeout(函数(){
log('Has class after small delay=',$btn.hasClass('active');
},20);
})。单击(函数(){
//将在触发第一个单击处理程序后添加类
$(this.addClass('active'))
})
单击我
非常感谢。我可以用它。但我期待着一个不涉及这种把戏的替代方案:)。今晚将验证您的答案。如果没有更多信息,我怀疑您会得到更多elseLet的说法,我想使用输入/无线电标准背后已经实现的功能(比如只有一个可能的选项)但我认为我做得不对,只要每个问题选择了一个选项,我就要做ajax请求,只要有一个选项被更改,我就要刷新它。由于单选按钮看起来不好,我决定使用bootstrap的单选按钮