【问题标题】:Has anyone created keybindings in Meteor successfully?有没有人成功地在 Meteor 中创建了键绑定?
【发布时间】:2014-09-30 04:29:01
【问题描述】:

一段时间以来,我一直在尝试在 Meteor 中实现键绑定。我尝试了以下软件包:

https://github.com/matteodem/meteor-keybindings

但无论我做什么,它总是说方法(例如添加键绑定)是未定义的。所以我正在考虑使用另一种方法。

有没有人成功地在 Meteor 中创建了键绑定?比如说,按 alt + a 触发事件?

【问题讨论】:

  • 您是否尝试将问题报告给软件包开发者?

标签: javascript meteor


【解决方案1】:

如果您指的是页面上任何位置的键事件,而不仅仅是在输入字段内,我使用下面的方法将这些回调添加到窗口中。然后,您必须在关闭该路线时手动删除它们。

在 Mac 上,控制键等只是用来发送不同的键码。 但是,我还没有在 Windows 上取得成功——这里没有机器可以测试,短暂尝试似乎没有引起关键反应。但是我认为这更像是一个与流星相关的 jquery/浏览器。如果您在 Windows 上找到 Ctrl-S 等(或 alt-S)有用的键码,请告诉我!

onRun 和 onStop 应该只被调用一次,但我发现 Iron 中的事件;路由器有点不可预测,所以值得添加您自己的 initDone=true/false 检查。

#coffeescript 

#--- router
  Router.map ->

    @route 'myTemplate',
      path: '/some/path'

      onRun: ->
        Template.komikPlayer.initScene()

      onStop: ->
        Template.komikPlayer.exitScene()

然后在相关的视图模板中有初始化和退出事件来设置/拆除关键事件

    Template.myTemplate.initScene = () ->
      addKeyEvents()

    Template.myTemplate.exitScene = () ->
      removeKeyEvents()

    addKeyEvents = () ->
      console.log('addKeyEvents')
      $(window).on 'keydown', (e) -> handleKeys(e)

    handleKeys = (e) ->
      switch e.keyCode
        when 69
          console.log('edit')
          url = "/komikEditScene/#{comic.data.params.chapter}/#{comic.data.params.scene}"
          window.open(url, 'editor')
        when 39, 32, 13 # next
          navTo("#nextField")
        when 37 # back
          navTo("#backField")
        else
          console.log('unused key:', e.keyCode)

【讨论】:

    【解决方案2】:

    不确定这是否有帮助,但我在我的 js 文件的事件区域中使用了一个简单的按键检测。这仅在选择输入字段时有效。

    //keypress input detection for autofilling form with test data
    
        'keypress input': function(e) {
    
            if (e.which === 17) { //17 is ctrl + q
    
                fillForm();
    
            }
    
        }
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-17
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多