我使用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>
答案 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());
}
};
...
}