SAPUI5 addEventListener在加载时调用函数而不是在声明的事件上调用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SAPUI5 addEventListener在加载时调用函数而不是在声明的事件上调用相关的知识,希望对你有一定的参考价值。
我在我的控制器中有一个以按钮为目标的函数,然后附加一个事件监听器,它应该在click事件上调用一个函数,但它在页面加载时自动调用它。
如何将其更改为仅在单击goBtn时调用该函数?
onAfterRendering: function() {
var goBtn = document.getElementById('__xmlview1--smartFilterId-btnGo');
console.log("goBtn = ", goBtn);
goBtn.addEventListener("click", this._onGoClick(event), false);
},
_onGoClick: function(event) {
console.log("Event attaaaaached!!! = ", event);
// do something else
},
答案
问题是您已经在评估事件处理程序了。这会立即调用_onGoClick
方法(一旦达到此行)。
goBtn.addEventListener("click", this._onGoClick(event), false);
你想要做的是将函数传递给稍后调用的addEventListener
。
goBtn.addEventListener("click", this._onGoClick, false);
另一方面,您的代码意味着在不久的将来中断。 id __xmlview1--smartFilterId-btnGo
是动态创建的,只要您在不同的上下文中启动应用程序,就可以更改。
以上是关于SAPUI5 addEventListener在加载时调用函数而不是在声明的事件上调用的主要内容,如果未能解决你的问题,请参考以下文章