【问题标题】:Event Code Behaves Differently in Different Browsers事件代码在不同浏览器中的行为不同
【发布时间】:2017-01-20 06:42:23
【问题描述】:

这个 Meteor 客户端代码有两个按钮。单击CLEAR 按钮将以下内容打印到控制台:
Chrome:“清除页脚”
Firefox:“提交的表单”控制台还给出“ReferenceError:未定义事件”

我该如何解决这个问题,以便它在所有浏览器中打印“页脚清除”?谢谢

Template.footer.events({
  'click #clear': () => {
    event.preventDefault();
    console.log('footer clear');  //<---------- fired in Chrome
  },
  'click #info': () => {
    event.preventDefault();
    console.log('footer info');
  }
});

Template.body.events({
  'submit form': function (event) {
    event.preventDefault();
    console.log('form submitted');  //<---------- fired in Firefox
  }
});
<head>
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
</head>
<body>
  <div id="main">
    <div id="content">
      <form>
        <button type="submit" style="display:none"></button>
           {{> content}}
           {{> footer}}
      </form>
    </div>
  </div>
</body>

<template name="content">
  <input type="text" id="plateNum" autocomplete="off">
</template>
<template name="footer">
  <footer>
    <button id="clear">CLEAR</button>
    <button id="info">INFO</button>
  </footer>
</template>

【问题讨论】:

    标签: javascript html meteor


    【解决方案1】:

    您需要将事件作为参数传递给您的点击处理程序:

    Template.footer.events({
      'click #clear': (event) => {
        event.preventDefault();
        console.log('footer clear');  //<---------- fired in Chrome
      },
      'click #info': (event) => {
        event.preventDefault();
        console.log('footer info');
      }
    });
    

    Chrome 显然有一个名为“event”的全局变量,但 Firefox 对此很挑剔。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-15
      • 2019-05-26
      • 1970-01-01
      相关资源
      最近更新 更多