Я понимаю, что мне нужно использовать stopPropigation, но как мне получить ссылку на событие из функции onClick. И также как узнать, как событие было привязано к элементу. Так что у меня есть простая кнопка, как это:Как остановить распространение событий?
<button class="btn btn-default" onclick="addRoleToReportClicked()">
функция выглядит следующим образом:
function addRoleToReportClicked() {
$('#addRoleDiv').show();
}
так просто. И работал нормально. Unitl Я только что обновил код с работы. Теперь он показывает div, но затем переходит к другим вещам, а именно к повторной загрузке всей страницы.
Я использую firefox, и я вижу, что кнопка теперь имеет обработчики событий «bubbling» и «DOM0». Я хотел бы знать, как это есть, но что более важно 2 вопроса:
Как остановить это в функции addRoleToReportClicked()? (Я предполагаю, что я могу stopPropogation, но как я могу получить дескриптор события?
Есть ли легко способ найти то, что код добавления этих обработчиков событий? Я пробовал отладки, но это не покажите мне что-нибудь. Я не хочу, чтобы пройти через 20+ JS файлы и тысячи строк кода, чтобы найти его. Но я хочу, чтобы выследить разработчик и стрелять в него.
UPDATE
Я пробовал:
$("#addRoleDivButton").unbind("click").on("click", function(e){
e.cancelBubble = true;
e.stopPropagation();
e.bubbles = false;
$('#addRoleDiv').show();
});
Ничего из этого не было. Взяв идею представления формы, я заметил, что все остальные кнопки на странице работают нормально, но это было внутри a. Поэтому я изменил тег с «кнопки» на «a», и он отлично работает. Кто-то приложил submit() к каждой кнопке внутри тега формы. Как остановить отправку?
Возможный дубликат http://stackoverflow.com/questions/387736/how-to-stop-event-propagation-with-inline-onclick-attribute – JagsSparrow
Держу пари, что это не имеет никакого отношения к распространению событий и что вы просто представляя регулярную форму HTML. – Quentin
использовать функцию unbind в jquery здесь выбор - это ваш элемент '$ (" selection ") .unbind (" click ", addRoleToReportClicked());' – Ankanna