【问题标题】:Remove onclick on anchor tag using jquery使用 jquery 删除锚标记上的 onclick
【发布时间】:2016-10-13 18:55:05
【问题描述】:

在锚标记上删除或禁用 onclick 事件的最佳方法是什么?这是我们设置的html:

<a onclick="doSomething('')" href="#"><div id="link-text">Link here</div></a>

尝试过类似的方法,但它似乎不起作用:

$('[id="cswp-like-text').parent().prop('onclick',null).off('click');

【问题讨论】:

  • 你可以试试$('a').on('click', function(e){ e.preventDefault(); // your code here });
  • 您的选择器无效'[id="cswp-like-text'
  • 删除 onclick 事件处理的最好方法是不在 HTML 中包含它。如果它是不需要的,为什么它会在那里?
  • @DavidThomas 也许OP想一键禁用按钮

标签: jquery anchor


【解决方案1】:

更新:
React的新理念下,建议将HTML与JS代码混合使用!

将 js 代码嵌入到 html 元素中被认为是一种不好的做法(例如onclick="function(){}"), 相反,我们鼓励您在脚本部分或外部 .js 文件中定义事件

回到您的问题,您可以利用 JavaScript 提供并受现代网络浏览器支持的 addEventListener()removeEventListener() 方法,这里有一个简单的使用纯 JavaScript(香草)的示例:

<a href="#" id="link">mylink</a>

这里是它的 js 部分:

// a function to be executed whenever an event occur 


var myFunction = function (){
      console.log('element with id link is clicked ');
    };

     var a = document.getElementById('link');
    // add event listener for the click event 
    a.addEventListener('click',myFunction);

    // remove the event listener 
    a.removeEventListener('click',myFunction);

一个 jquery 等效解决方案是使用 .unbind('event name')

var a = $('#link');
$(a).unbind('click');

【讨论】:

    猜你喜欢
    • 2019-03-13
    • 2012-03-15
    • 2015-09-23
    • 2013-07-14
    • 2013-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多