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

时间:2019-05-23 18:47:57

标签: 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未捕获的TypeError:I.fFunction.call不是函数
      在f.b.fireEvent(EventProvider-dbg.js:228)
      在f.b.fireEvent(Element-dbg.js:557)
      在f.firePress(ManagedObjectMetadata-dbg.js:764)
      在f.d.ontap(Button-dbg.js:300)
      在f.b._handleEvent(Element-dbg.js:259)
      在builder.U._handleEvent(UIArea-dbg.js:921)中
      在HTMLDivElement.dispatch(jquery-dbg.js:4737)
      在g(jquery-mobile-custom-dbg.js:1881)
      在HTMLDivElement.r(jquery-mobile-custom-dbg.js:2000)
      在HTMLDivElement.dispatch(jquery-dbg.js:4737)

1 个答案:

答案 0 :(得分:2)

press应该是function,请尝试如下操作:

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

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