SAPUI5 addEventListener вызывает функцию при загрузке, а не при объявленном событии - PullRequest
0 голосов
/ 14 сентября 2018

У меня в контроллере есть функция, которая нацелена на кнопку, затем подключает прослушиватель событий, который должен вызывать функцию для события 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
},

1 Ответ

0 голосов
/ 14 сентября 2018

Проблема в том, что вы уже оцениваете свой обработчик событий.Это вызывает метод _onGoClick немедленно (как только эта строка будет достигнута).

goBtn.addEventListener("click", this._onGoClick(event), false);

Что вы хотите сделать, это передать функцию в addEventListener, которая будет вызвана позже.

goBtn.addEventListener("click", this._onGoClick, false);

С другой стороны, ваш код должен сломаться в ближайшем будущем.Идентификатор __xmlview1--smartFilterId-btnGo создается динамически и может измениться, как только вы запустите приложение в другом контексте.

...