首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >事件处理程序优化

事件处理程序优化
EN

Stack Overflow用户
提问于 2013-10-26 15:42:41
回答 2查看 62关注 0票数 0

我只是想知道是否有一种方法可以重构这段代码:

代码语言:javascript
复制
Template.bookmarks.events({
    // save changes
    'keyup .set_tag' : function(e,t) {
      if(e.which === 13) {
        save_changes(e.target.id.substring(3));
      }
    },

    'keyup .set_name' : function(e,t) {
      if(e.which === 13) {
        save_changes(e.target.id.substring(4));
      }
    },
    'click .save_changes' : function(e,t) {
      save_changes(e.target.id);
    }
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-27 00:34:36

尝试在表单标签中包装,并侦听该表单的提交事件。确保event.preventDefault()

然后,您可以避免所有的密钥代码13的东西。

票数 2
EN

Stack Overflow用户

发布于 2013-10-26 19:19:00

代码语言:javascript
复制
function action(key, offset) {
  return function(e, t) {
    if (e.which === key) {
      save_changes(e.target.id.substring(offset))
    }
  }
}

Template.bookmarks.events({
  // save changes
  'keyup .set_tag': action(13, 3),
  'keyup .set_name': action(13, 4),
  'click .save_changes': function(e, t) {
    save_changes(e.target.id);
  }
});

一个解决问题的方法。我不会试图将第三个事件处理程序强制到action函数中,因为它会使action函数变得更加复杂。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19608585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档