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

Event not triggered in dynamically generated buttons

我动态生成了按钮,但没有触发按下事件。

我也试过为每个按下事件赋予相同的函数名称,但它不起作用。

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 应该是 function,试试这样:

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

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