简体   繁体   English

event.stopPropagation() 不起作用?

[英]event.stopPropagation() is not worknig?

I have implemented click event on window and on specific element.我已经在 window 和特定元素上实现了点击事件。 I want to stop window click event propagation on particular element click as mentioned below but it is not working.我想停止 window 单击特定元素的事件传播,如下所述,但它不起作用。 I am not sure what wrong I am doing here.我不确定我在这里做错了什么。

$('.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');
});

Apart from the typos, if your selects are not nested just do this除了拼写错误,如果您的选择没有嵌套,请执行此操作

$('.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');
});

Please post your HTML since this works:请发布您的 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>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM