我已动态生成按钮,但未触发按下事件。
我还尝试为每个新闻事件指定相同的函数名称,但它不起作用。
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/