使用jquery禁用链接不起作用

rob*_*bel -2 html javascript jquery

我试图通过检查是否满足某些条件来使用jquery中的ifment.I已查看其他问题并尝试这些解决方案来禁用链接

if (discussionPointsSize == 0) {
  $('#discussionPointsLink').preventDefault();
  $('#discussionPointsLink').bind('click', false);
  $('#discussionPointsLink').click(function() {
    return false;
  });
  $('#discussionPointsLink').data('disabled()')
  $('#discussionPointsLink').click(function() {
    return ($(this).attr('disabled')) ? false : true;
  });
  $('#discussionPointsLink').click(function(e) {
    e.preventDefault();
    //do other stuff when a click happens
  });
}
Run Code Online (Sandbox Code Playgroud)

但所有上述解决方案都没有禁用链接.只是为了确保我尝试.hide()并且链接被隐藏,这意味着我正在访问正确的链接.所以任何人都可以告诉我应该怎么做?

Nam*_*ong 5

在这里你应该尝试pointer-events: none;使用CSS.如果条件为真,我们将disable-this为其添加类.如果没有,我们将删除课程disable-this

if (discussionPointsSize == 0) {
  $('#discussionPointsLink').addClass('disable-this');
} else {
  $('#discussionPointsLink').removeClass('disable-this');
}
Run Code Online (Sandbox Code Playgroud)

我们将定义类disable-this这样

  .disable-this{
    pointer-events: none;
  }
Run Code Online (Sandbox Code Playgroud)

或者,如果您不想在CSS文件中添加任何内容,则应该这样做

if (discussionPointsSize == 0) {
  $('#discussionPointsLink').css({'pointer-events': 'none'});
} else {
  $('#discussionPointsLink').css({'pointer-events': 'inherit'});
}
Run Code Online (Sandbox Code Playgroud)