2015-08-04 3 views
0

У меня есть внешний JS с таким кодомOnClick событие для документа предотвращения событий для элемента

document.addEventListener("mousedown",docclick,1); 
document.addEventListener("click",docclick,1); 

и мои JS, содержащие

$("#close").click(function(e){ 
    e.preventDefault(); 
    $("#box").remove(); 
}); 

Прежний код предотвращения мой код от исполнения. Как запустить мой код?

+0

Вы пробовали подключить событие закрытия до docclick? – Ayrit

+0

Да, мой JS вызывается перед внешним, – wolfie

ответ

1

Поскольку внешний JS подключен к document и сконфигурирован захват использования (обозначенный символом 1 в вызове метода), он скорее всего поймает событие щелчка, прежде чем он попадет на ваш прослушиватель событий. Вам необходимо удалить их слушателя и снова подключить его, не используя захват, например:

//Remove the offending event listener 
document.removeEventListener("click",docclick,1); 
//Add your listener 
$('#close').click(function(e){ 
    e.preventDefault(); 
    $("#box").remove(); 
}); 
//Reattach the offending event listener, without capture 
document.addEventListener("click",docclick); 

Надеюсь, это поможет.

+0

Удаление слушателя работает нормально, но добавление его обратно имеет тот же эффект, что и исходный код, я загрузил файлы здесь http://ulozto.net/x5coQ8YX/code- zip ho1.js содержит removeEventListener – wolfie

Смежные вопросы