Я посмотрел на ваш Plunker.
Ошибка самоочевидна: событие используется до того, как оно было определено, поэтому вы получаете ReferenceError, потому что менеджер области видимости сходит с ума.
Ваш dismissModal
метод вызывает bindEvents
, передавая два параметра, второй кажется обратным вызовом.
Это подтверждается, глядя на вашего Плункера на определение bindEvents
, а именно:
function bindEvents(el, callback) {
for (i = 0; i < el.length; i++) {
if (window.CP.shouldStopExecution(0)) break;
(function(i) {
el[i].addEventListener('click', function(event) {
callback(this, event);
});
})(i);
}
window.CP.exitedLoop(0);
}
Как видите, вторым параметром является callback
.Этот callback
вызывается, когда выполняется щелчок по определенному элементу, и вызывается с двумя параметрами:
callback(this, event);
Возвращаясь к вашему коду, мы видим, что событие должно быть вторымпараметр вашего обратного вызова:
function dismissModal() {
bindEvents(_dismiss, function(that, event) {
hideModal(event);
});
}
Таким образом, он определяется (как аргумент обратного вызова) и присваивается bindEvents
при щелчке элемента.
Надеюсь, это понятно.