javascript - event.stopPropagation() 不工作?
问题描述
我已经在窗口和特定元素上实现了点击事件。我想停止对特定元素单击的窗口单击事件传播,如下所述,但它不起作用。我不确定我在这里做错了什么。
$('.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');
});
解决方案
除了拼写错误,如果您的选择没有嵌套,请执行此操作
$('.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>
推荐阅读
- angular - angular material TimePicker ngx-material-timepicker Error Uncaught (in promise): TypeError: Object(...) is not a function
- java - 计数数组的行为
- java - 子集和解java
- php - 不能使用类型的对象 XXX 作为数组
- timer - RabbitMQ 中延迟消息的已知问题
- vue.js - Adding image and text to Vue Select dropdown
- c# - System.IO.IOException:'进程无法访问文件'File',因为它正被另一个进程使用。'
- javascript - React 16.4 - 手动表单输入填充以及来自 getDerivedStateFromProps 的更新?
- abap - 自定义F4的新纪录
- sqlite - 是否可以获得在颤振中为 Android 模拟器创建的 SQLite 数据库的 GUI?