【问题标题】:Why is my method called twice in Framework7 on click?为什么我的方法在点击时在 Framework7 中被调用两次?
【发布时间】:2021-06-01 21:44:50
【问题描述】:

我正在使用 Framework7,我正在尝试进行一个相当简单的按钮单击设置,以触发警报窗口。设置如下:

<div class="col-100">
  <div class="list no-hairlines-md">
    <ul>
      <li class="item-content item-input">
        <div class="item-inner">
          <div class="item-title item-label">Custom Message</div>
          <div class="item-input-wrap">
            <input id="custom-message-input" type="text" placeholder="Your message here..." />
            <span id="custom-message-clear" class="input-clear-button"></span>
          </div>
        </div>
      </li>
    </ul>
    <a id="custom-message-button" class="button button-raised button-fill">Send Custom Message</a>
  </div>
</div>

点击事件的初始化如下:

app.on('pageInit', function (page) {
  $('#custom-message-button').on('click', () => {
    $('#custom-message-clear').click();
    app.dialog.alert('Message was successfully sent.', 'Information');
  });
  ...

但由于某种原因,当我单击按钮时,它会触发两次。警报出现一次,我点击它离开,然后它再次出现,我点击它离开。然后它就消失了。

我可能在这里遗漏了什么?

【问题讨论】:

  • 不熟悉该框架,但我会在on('pageInit' 中进行一些日志记录,看看它是否被多次调用。最坏的情况你可以做$(selector).off('click').on('click'....
  • @charlietfl 我检查了。当我单击一次按钮时,它会两次打印出我的控制台消息。
  • 了解那部分,但 pageInit 是否会多次触发以导致它?
  • @charlietfl 奇怪的是,我在另一个页面上做的事情完全相同,但只触发一次。
  • @charlietfl 看起来 pageInit 确实被调用了两次。但奇怪的是它在其他地方按预期工作:/我会尝试检查,看看我是否能找出另一个电话在哪里。

标签: javascript html jquery html-framework-7


【解决方案1】:

如果将来有人偶然发现这一点;这是因为在路由器中找到的每个页面都会调用“pageInit”。使用“name”属性来确定当前正在初始化的页面。

【讨论】:

    猜你喜欢
    • 2013-11-04
    • 1970-01-01
    • 1970-01-01
    • 2011-01-20
    • 2017-09-24
    • 2021-05-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多