目標
何かが起こった後に関数を思い出すための良い、決定的な方法です。
問題
何かが起こったときにリコールする必要があるいくつかの機能を使用しています。簡単な例は、Twitter の次のボタンのようなボタンです。
ここまで、すべて順調です。でも、どうやって思い出せばいいのかわからない。実際、私はすでに$.getScript
jQueryを使用しようとしましたが、サーバーに多くのリクエストが発生し、この動作に慣れていません.
問題を説明するために、この jsFiddleを作成しました。ボタンを初めてホバーすると、スタイルが変わります。それをクリックしてもう一度クリックすると、「ホバー動作」が消えます。
どうすればいいのか本当にわかりません。
$.getScript
それはこれに対する最良の解決策ですか?
誰か提案がありますか?
コード (jsFiddle ダウンの場合)
コードのノックアウトは単なる例であり、無関係です。私は ajax 呼び出しと可能なすべてのものでこれを行いたいと思っています。
HTML:
<div class="container">
<!-- ko if: isAdded -->
<button class="btn primary" data-bind="click: add">Add Xbox 360</button>
<!-- /ko -->
<!-- ko ifnot: isAdded -->
<button class="btn btn-success primary remove" data-bind="click: remove">Xbox 360 already added</button>
<!-- /ko -->
</div>
JavaScript:
$("button.remove").hover(function() {
$(this)
.removeClass("btn-success")
.addClass("btn-danger")
.text("Click here to remove");
}, function() {
$(this)
.removeClass("btn-danger")
.addClass("btn-success")
.text("Xbox 360 already added");
});
ViewModel = function() {
var self = this;
self.isAdded = ko.observable(false);
self.add = function(item) {
item.isAdded(false);
};
self.remove = function(item) {
item.isAdded(true);
};
};
ko.applyBindings(new ViewModel());