2013-05-24 4 views
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 или что-то еще?

ответ

2

Я сделал JSFiddle here Здесь правая кнопка связывается, вы можете сделать это через 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); 
+0

Благодаря Leroy, у меня есть средний мышь работает внутри функции, используя, если (event.which == = 2) {// middle}, не уверен, что это правильный способ сделать это, хотя – magritte

+0

Если это работает, почему бы и нет;) Вы также можете взглянуть на [link] http://knockoutjs.com/documentation/custom- bindings.html и создать свои собственные привязки! –

Смежные вопросы