0

初心者の質問で申し訳ありませんが、ドキュメントのどこにもこれが表示されません。

http://knockoutjs.com/documentation/click-binding.html

<div>
    You've clicked <span data-bind="text: numberOfClicks"></span> times
    <button data-bind="click: incrementClickCounter">Click me</button>
</div>

<script type="text/javascript">
    var viewModel = {
        numberOfClicks : ko.observable(0),
        incrementClickCounter : function() {
            var previousCount = this.numberOfClicks();
            this.numberOfClicks(previousCount + 1);
        }
    };
</script>

マウスの左ボタン、右ボタン、または中央ボタンのどれがクリックされたかによって異なるアクションが必要な場合はどうすればよいですか? それには特定のバインディングがありますか、それともイベントにフックして event.which または何かを使用しますか?

4

1 に答える 1

2

ここで JSFiddleを作成しました。ここで右ボタンがバインドされています。これは中央のマウスで実行できます。これはdata-bind="event: { contextmenu: incrementClickCounter }" まだわかりません。この回答が途中で役立つことを願っています。どう考えているか教えてください ;)

HTML:

<div>
    You've clicked <span data-bind="text: numberOfClicks"></span> times
    <button data-bind="click: incrementClickCounter">Click me</button>
    <button data-bind="event: { contextmenu: incrementClickCounter }">Click me</button>
</div>

JavaScript:

var viewModel = {
        numberOfClicks : ko.observable(0),
        incrementClickCounter : function() {
            var previousCount = this.numberOfClicks();
            this.numberOfClicks(previousCount + 1);
        }
    };
ko.applyBindings(viewModel);
于 2013-05-24T15:24:22.813 に答える