javascript - 动态生成的按钮中未触发事件

标签 javascript sapui5

我已动态生成按钮,但未触发按下事件。

我还尝试为每个新闻事件指定相同的函数名称,但它不起作用。

for (var i = 1; i < 4; i++) {
  var pr = "onPress" + i;
  var oButton = new sap.m.Button({
    text: "Save",
    press: pr
  });
  // ...
}

单击按钮后控制台中显示以下错误:

EventProvider-dbg.js:228 Uncaught TypeError: I.fFunction.call is not a function
at f.b.fireEvent (EventProvider-dbg.js:228)
at f.b.fireEvent (Element-dbg.js:557)
at f.firePress (ManagedObjectMetadata-dbg.js:764)
at f.d.ontap (Button-dbg.js:300)
at f.b._handleEvent (Element-dbg.js:259)
at constructor.U._handleEvent (UIArea-dbg.js:921)
at HTMLDivElement.dispatch (jquery-dbg.js:4737)
at g (jquery-mobile-custom-dbg.js:1881)
at HTMLDivElement.r (jquery-mobile-custom-dbg.js:2000)
at HTMLDivElement.dispatch (jquery-dbg.js:4737)

最佳答案

press 应该是一个函数,尝试这样的事情:

for (let i = 1; i < 4; i++) {
  var oButton = new sap.m.Button({
    text: "Save",
    press: () => {
      console.log("onPress" + i);
    }
  });
  // ...
}

我还使用 let 关键字声明了 i,因为回调将异步执行

关于javascript - 动态生成的按钮中未触发事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56281288/

相关文章:

javascript - 如何在php中屏蔽javascript字符串

sapui5 - Fiori——跨应用导航;处理启动参数?

javascript - 我可以手动将调度添加到组件的 props 而不是 connect() 吗?

php - 我如何让 emacs 区分我在编写 PHP、HTML 和 JavaScript 时的区别?

javascript - 如何将 JMVC (javascript-mvc) 和服务器端 MVC 结合在一起

javascript - SAP UI 5中如何选择所有输入类型

javascript - sap.m.Text 对象中的条件粗体

javascript - SAPUI5部署: minimal set of files required to run

javascript - 扩展 sap.ui.unified.CalendarAppointment

Javascript 刽子手问题