#javascript #jquery
Вопрос:
Я реализовал событие щелчка в окне и на определенном элементе. Я хочу остановить распространение события щелчка окна по конкретному элементу щелчка, как указано ниже, но это не работает. Я не уверен, что делаю здесь что-то не так.
$('.dropdown-container').click(function(event){
event.stopPropagation()
var selectElement = '.dropdown-container > select';
if($(selectElement).hasClass('actionDD')){
$(selectElement '.actionDD').toggleClass('special');
}
else if($(selectElement).hasClass('countryDD')) {
$(selectElement '.countryDD').toggleClass('special');
}
$('.fa-chevron-down.importC, .fa-chevron-down.exportC ').removeClass('special');
});
$(window).click(function(event){
console.log('window event clicked');
$('.dropdown-container, .fa-chevron-down.importC, .fa-chevron-down.exportC').removeClass('special');
});
Комментарии:
1. ОПЕЧАТКА:
e.stopPropagation()
дляevent.stopPropagation()
2. Как указано выше, или
.click(function(e) {
Ответ №1:
Помимо опечаток, если ваши выборки не вложены, просто сделайте это
$('.dropdown-container').on("click", "select", function(e){
e.stopPropagation()
if($(this).is('.actionDD') || $(this).is('.countryDD')) {
$(this).toggleClass('special');
}
$('.fa-chevron-down.importC, .fa-chevron-down.exportC ').removeClass('special');
});
$(window).on("click", function(e){
console.log('window event clicked');
$('.dropdown-container, .fa-chevron-down.importC, .fa-chevron-down.exportC').removeClass('special');
});
Пожалуйста, опубликуйте свой HTML, так как это работает:
$('.dropdown-container').on("click", "select", function(e) {
e.stopPropagation()
if ($(this).is('.actionDD') || $(this).is('.countryDD')) {
$(this).toggleClass('special');
}
});
$(window).on("click", function(e) {
console.log('window event clicked');
});
.special {
background-color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="dropdown-container">
<select class="actionDD">
<option>Click</option>
</select>
</div>
Комментарии:
1. Это не работает, но я все равно получаю «щелчок по событию окна» на консоли.
2. Пожалуйста, ознакомьтесь с моими обновлениями. Нам нужно увидеть ваш HTML
3. Да, это действительно работает. Спасибо мплунгджан
4. ИВ -вы не хотели бы принять ответ ?