为什么我必须单击两次才能运行使用Bootstrap按钮插件添加的active
类的函数?
var monthly = $("input[name='montly_total']");
var once = $("input[name='once_total']");
$(".button-selector").click(function () {
$(".button-selector.monthly.active").sum("click", monthly);
$(".button-selector.once.active").sum("click", once)
});
直播示例:http://jsfiddle.net/ynts/3Z6sm/。仅在第二次按下按钮时才会更新输入。
答案 0 :(得分:2)
这些按钮是pain to use,因为它们不会触发您可以将功能挂钩的任何自定义事件。
那就是说,这是一个丑陋的setTimeout()
解决方法:
$(".button-selector").click(function () {
// break out of click handler chain
setTimeout(function() {
// by the time this runs, the active state will have been updated
$(".button-selector.monthly.active").sum("click", monthly);
$(".button-selector.once.active").sum("click", once)
}, 0);
});