Задача такая же, как в this post: захватите ссылку на ссылку и запретите поведение браузера по умолчанию. Ответ дается там был:Как я могу сделать preventDefault перед запуском прокси-события?
шаблона:
<a on-click='sayHello' href="#">Activate!</button>
JS:
ractive.on('sayHello', function (event) {
event.original.preventDefault();
alert('Hello world!');
});
Проблема заключается в том, что обработчик sayHello
событие не должен знать о том, что было оригинальное событие. Весь смысл проксирования заключается в том, что обработчик события не должен заботиться о типе исходного события. Например, я меняю ссылку на кнопку, больше нет необходимости в preventDefault
.
Итак, мой вопрос заключается в том, как я могу вызвать preventDefault до или после запуска прокси-сервера события.
хорошее решение было бы уволить несколько прокси-серверов событий в строке (если это возможно):
Шаблон:
<a on-click='preventDefault;sayHello' href="#">Activate!</button>
Js:
ractive.on('preventDefault', function (event) {
event.original.preventDefault();
});
ractive.on('sayHello', function (event) {
alert('Hello world!');
});
Возможно ли это каким-то образом ? Или есть другое приятное решение?
Ничего себе, спасибо, кажется, хорошая идея! :) Но разве вам не нужен оригинал: e в аргументе fire()? –
Конечно, я думал, вы идете в стиле, где «обработчик события не должен заботиться о типе оригинального события». См. Http://jsfiddle.net/ka2Pu/6/. – martypdx
Но нет, это не требуется. – martypdx