如何选择,然后点击"点击"带键盘的div

时间:2014-03-28 16:10:43

标签: javascript jquery knockout.js focus

我使用html和knockout复制了一个复选框。除了我刚刚意识到用户将无法选中这些复选框(使用选项卡聚焦它们然后使用空格或输入选择它们)之外,这一切都很有效。

每个复选框都由一个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 个答案:

答案 0 :(得分: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());
        }
    };

    ...
}