【问题标题】:How to check for keyboard modifiers like "shift" on click handler?如何在点击处理程序上检查键盘修饰符,如“shift”?
【发布时间】:2011-07-09 10:55:18
【问题描述】:

当使用 jQuery click 事件时,我会检查传递给单击处理程序的事件对象,以确定用户单击时是否按住 shift 键。

在 KnockoutJS 中使用点击绑定时是否可以检查键盘修饰符,如 shift 键?如果有,怎么做?

【问题讨论】:

    标签: javascript jquery knockout.js


    【解决方案1】:

    在当前的 Knockout 代码中,点击绑定实际上是传递了 jQuery 事件对象。此对象有 shiftKey、altKey 和 ctrlKey。

    因此,您的点击绑定绑定的函数可能如下所示:

    点击:函数(事件){ if (event.shiftKey) { 做一点事(); } }

    这是一个示例:http://jsfiddle.net/rniemeyer/ak4vL/

    如果你传递给点击绑定的函数是匿名的,那么你可以这样写:

    <button data-bind="click: function(event) { viewModel.click(event); }">More Hide Anonymous Function</button>
    

    就像在这个示例中:http://jsfiddle.net/rniemeyer/YUhzk/

    【讨论】:

    • 我发现 Knockout 正在通过function(viewModel, event)
    【解决方案2】:

    你可以用普通的javascript来做到这一点,假设knockoutjs已经捕获了点击事件,你可以检查以下任何一个是否为真:

     e.shiftKey
     e.altKey
     e.ctrlKey
    

    【讨论】:

      猜你喜欢
      • 2012-11-12
      • 2012-02-05
      • 1970-01-01
      • 1970-01-01
      • 2013-04-18
      • 2010-09-13
      • 2011-03-07
      • 1970-01-01
      相关资源
      最近更新 更多