必须单击两次才能通过Bootstrap按钮插件运行一个功能

时间:2013-01-22 02:21:26

标签: jquery twitter-bootstrap

为什么我必须单击两次才能运行使用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/。仅在第二次按下按钮时才会更新输入。

1 个答案:

答案 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);
});