javascript - 使用 JQuery 启用和禁用点击事件

标签 javascript jquery

我有一些 HTML 元素

<p class="accordion-header open" id="platform_0" onclick="validateScreens(this)">Platform 0</p>
<p class="accordion-header open" id="platform_1" onclick="validateScreens(this)">Platform 0</p>
<p class="accordion-header open" id="platform_2" onclick="validateScreens(this)">Platform 0</p>

我想删除并恢复此元素上的点击事件。我的 JavaScript 代码是:

function validateScreens(domObj)
{   
  if(some condition)
  {  
    $(domObj).off("click"); // //remove click from  <p> whenever there is a click event
  } else {
    $(domObj).on("click",function() { return true; });// restores the click event      
  }
}

它成功地删除了点击事件,但没有恢复它。如何做。

最佳答案

<p class="accordion-header open" id="platform_0" onclick="validateScreens(this)">Platform 0</p>
<p class="accordion-header open" id="platform_1" onclick="validateScreens(this)">Platform 0</p>
<p class="accordion-header open" id="platform_2" onclick="validateScreens(this)">Platform 0</p>
<script>
function validateScreens(domObj){   
       if(some condition){  
           $(domObj).on("click" , function( e ){ e.preventDefault(); }); 
     }else{
           $(domObj).on("click",function() {  return true; });
        }
}</script>

调用event.preventDefault方法时,不会触发事件的默认 Action 。

阅读更多关于:https://api.jquery.com/event.preventdefault/

关于javascript - 使用 JQuery 启用和禁用点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40825162/

相关文章:

jQuery UI 选项卡在加载时不隐藏非事件选项卡

jquery - 两个独立的固定列标题,使用 CSS 或 JQuery 进行水平滚动

javascript - 单选按钮、文本区域和输入检查

javascript - 从主文档中的 JavaScript 获取 IFrame 的文档

javascript - 将 npm 模块与 TypeScript 一起使用 - 甚至无法让最简单的示例工作

c# - 如何使用模型选择选项?

javascript - 在 ajax 成功调用页面重新加载后附加 DOM 元素

javascript - 从菜单Electron.js调用其他文件上的函数

javascript - 使用 Javascript 中的弹出窗口重定向到另一个 url

javascript - 在静态导航上动态设置事件链接