首页 > 解决方案 > 将 preventDefault 添加到无序列表的任何列表元素中?

问题描述

我需要将防止默认值添加到无序列表的列表元素中

<ul class="select2-results" role="listbox" id="select2-results-2">
<li class="select2-results- 
dept-0 select2-result select2-result-selectable" role="presentation"><div class="select2- 
result-label" id="select2-result-label-4" role="option"><div class="flex justify-space- 
between align-center py1 px2">
  <div>
    <p class="m0">MY REView</p>
    <p class="grey-20 m0">Active</p>
  </div>

  <div class="cycle-switcher-result-label invisible hide">Actions Required</div>
  </div></div>
  </li>
  <li class="select2-results-dept-0 select2-result select2-result- 
  selectable" role="presentation"><div class="select2-result-label" id="select2-result-label- 
  5" role="option"><div class="flex justify-space-between align-center py1 px2">
  <div>
    <p class="m0">TEST MY REVIEW</p>
    <p class="grey-20 m0">Active</p>
  </div>

 <div class="cycle-switcher-result-label invisible hide">Actions Required</div>
 </div></div>
 </li>
 </ul>

我试图添加元素本身,它不起作用

let item = document.getElementsByClassName('select2-results')[0]
$(item).on('mousedown',function(e){console.log("showCycleSwitcher mouse down..."); 
e.preventDefault();})

如何确保 mousedown preventDefault 适用于 click li 元素

标签: javascriptjquerybackbone.js

解决方案


据我所知,您正在将 jQuery 与 vanila js 混合使用。

let item = document.getElementsByClassName('select2-results')[0];
item.addEventListener("click", function(e) {
    e.preventDefault();
    console.log("showCycleSwitcher mouse down...");
});

这对我有用,不需要 jQuery。

这是工作示例:https ://jsfiddle.net/fbwyk3cj/1/


推荐阅读