2014-03-28 33 views
0

我已经使用html和淘汰赛复制了一个复选框。除了我刚刚意识到用户将无法选中这些复选框(使用选项卡将它们聚焦,然后使用空格或输入选择它们)之外,所有工作都非常棒。如何选项卡,然后用键盘“点击”格

每个复选框都是由div和我可以通过添加tabindex =“0”来实现这一点,但是按空格或回车键不会触发我的点击绑定。

有没有一种方法可以很容易地接线呢?

<div class="checkbox" tabindex="0" 
    data-bind="'css': { 'checked': IsAdmin }, 'click': toggleIsAdmin"> 
    <div class="Icons_checkboxnotticked-png sprite" 
     data-bind="'css': { 'Icons_checkboxticked-png' : IsAdmin}"></div> 
    <label>Is Admin?</label> 
</div> 
+1

添加按键处理,然后触发点击 – CrazyDart

+0

嗯,是的,我期待到现在事件结合。 http://knockoutjs.com/documentation/event-binding.html – 4imble

回答

0

好,我做到了这样,

<div class="checkbox" tabindex="0" 
    data-bind="'css': { 'checked': IsAdmin }, 
       'click': toggleIsAdmin, 
       'event': {keypress: toggleIsAdmin}"> 
    <div class="Icons_checkboxnotticked-png sprite" 
     data-bind="'css': { 'Icons_checkboxticked-png' : IsAdmin}"></div> 
    <label>Is Admin?</label> 
</div> 

var vm = function() 
{ 
    ... 

    var spaceKey = 32, enterKey = 13; 

    var toggleIsAdmin = function (data, event) 
    { 
     if (!event.keyCode 
       || event.keyCode == spaceKey 
       || event.keyCode == enterKey) 
     { 
      this.IsAdmin(!this.IsAdmin()); 
     } 
    }; 

    ... 
} 
相关问题