Я хочу использовать замыкание как EventListener (им работать в библиотеке маршрутизации), поэтому я создал класс, который делает именно это назначениеCant использовать замыкание в качестве слушателя событий для PushState
'use strict';
var RouteManager = RouteManager || {};
RouteManager.OnClickDelegate = function(UrlHandler)
{
var handler = UrlHandler;
return function delegate(e)
{
e = e || window.event;
var element = e.target || e.srcElement;
if (element.tagName == 'A') {
console.log("link click");
window.history.pushState({},"",e.href);
//this.handler.handle(element.href);
return false;
}
};
};
:
document.onclick = RouteManager.OnClickDelegate(new UrlHandler());
Однако, несмотря на назначение закрытия в качестве слушателя событий работает («ссылка нажмите» регистрируются правильно) состояние разве толкнул
сделать дела даже незнакомым, это работает правильно:
document.onclick = (function(UrlHandler){
var uh = UrlHandler;
return function delegate(e)
{
e = e || window.event;
var element = e.target || e.srcElement;
if (element.tagName == 'A') {
console.log("link click");
window.history.pushState({},"",e.href);
//this.handler.handle(element.href);
return false;
}
};
})(new UrlHandler());
Любые идеи?
Кроме того, пожалуйста, не предлагают библиотеку работать маршрутизации, его не то, что им просят
Почему закрытие? Вы вообще не используете 'UrlHandler' /' handler'/'uh'. – Bergi
Очень маловероятно, что один работает, а другой нет. Обратите внимание, однако, что вы, вероятно, захотите использовать 'element.href' вместо' e.href'. – Bergi
Да, я заметил пару часов назад, сейчас работает. Я чувствую себя очень глупо, если не сказать больше. Положите это как ответ, поэтому я отмечаю его как ответ. –