jquery引入bootstrap.button.js组件后,事件执行顺序的问题
我想实现这样一个效果:点击按钮组中的按钮,获得按钮组中的哪些按钮被选定。
看到bootstrap中实现了这样的效果,所以引入了bootstrap.botton.js这个插件,使用on绑定按钮选择选中的按钮(选定后包含有active属性),但是每次获得的都是上一次点击的按钮值。
例如第一次点击“严重”按钮,第二次再点击“警告”按钮,第二次只能获得“严重”按钮的状态。
<div class="btn-group alarm-priority" data-toggle="buttons-checkbox">
<button type="button" id="alarm_condition_error" class="btn btn-small btn-danger alarm-search-condition active">严重</button>
<button type="button" id="alarm_condition_alert" class="btn btn-small btn-warning alarm-search-condition active">警告</button>
<button type="button" id="alarm_condition_warn" class="btn btn-small btn-success alarm-search-condition active">提醒</button>
</div>
var alarmConditions = new Array();
function getAlarmConditions() {
alarmConditions.splice(0,alarmConditions.length);
$(".alarm-condition .alarm-search-condition").each(function(i,element){
if($(element).hasClass("active")){
alarmConditions.push(i);
}
});
}
$(".alarm-search-condition").on('click',function(){
setTimeout(function(){ //因为事件的执行顺序问题,暂时这样解决
getAlarmConditions();
}, 500);
});
加上定时器,延迟click事件后,则每次都可以获取当前操作的按钮值。
不知道不加定时器的方式能否解决这个问题?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
不知道 jquery.button.js 有没有控制
.active
的切换,不过可以自己写https://jsfiddle.net/55f48vwx/
一个按钮绑定再多的回调函数,每一个回调函数输入值都是不能被改变的
所以你的问题和执行顺序没有关系~~~