2

activeBootstrap ボタン プラグインによって追加されたクラスを使用する関数を実行するために 2 回クリックする必要があるのはなぜですか?

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/。入力は、ボタンを 2 回クリックしたときにのみ更新されます。

4

1 に答える 1

3

これらのボタンは、機能をフックできるカスタム イベントを発生させないため、使用するのが面倒です。

そうは言っても、ここに醜い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);
});
于 2013-01-22T02:55:03.827 に答える