隐藏方法正在运行,但在Jquery中没有禁用

时间:2015-12-18 09:26:46

标签: javascript jquery

我正在使用<a>正在使用的hide()属性但disable可以让任何人告诉我原因。{/ p>

Fiddle

$("#1").click(function() {
  if (!$(".id_" + event.target.id).hasClass('minus-symbol')) {
    alert('data')
    var id = event.target.id
    $(".id_" + event.target.id).removeClass('plus-symbol').addClass('minus-symbol')
      //$(".id_"+event.target.id).hide(); // hide is working
    $(".id_" + id).attr('disabled', true); // disable is not working  
  } else {
    alert('data1')
    $(".id_" + event.target.id).addClass('plus-symbol').removeClass('minus-symbol')
  }
});
.plus-symbol {
  background-image: url('../plus-sym.gif');
  background-repeat: no-repeat;
  background-position: center;
  padding-left: 7px;
}
.minus-symbol {
  background-image: url('../minus-symbol.gif');
  background-repeat: no-repeat;
  background-position: center;
  padding-left: 7px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a class='plus-symbol id_1' id="1">data</a>

不改变<a>属性的解决方案。

2 个答案:

答案 0 :(得分:0)

与评论中提到的人一样,disabled属性仅适用于表单元素。您可以使用全局布尔变量(例如clickable)禁用单击,然后您可以控制从中单击:

&#13;
&#13;
var clickable=true;

$("#disable-click").click(function(){
    clickable=false;
});

$("#enable-click").click(function(){
    clickable=true;
});

$("#1").click(function(){

   if (clickable){
       if(!$(".id_"+event.target.id).hasClass('minus-symbol')){
          alert('data')
          var id = event.target.id
          $(".id_"+event.target.id).removeClass('plus-symbol').addClass('minus-symbol')
          //$(".id_"+event.target.id).hide(); // hide is working
       }else{
          alert('data1')
          $(".id_"+event.target.id).addClass('plus-symbol').removeClass('minus-symbol')
       }
   }
});
&#13;
.plus-symbol {
  background-image: url('../plus-sym.gif');
  background-repeat: no-repeat;
  background-position: center;
  padding-left: 7px;
}
.minus-symbol {
  background-image: url('../minus-symbol.gif');
  background-repeat: no-repeat;
  background-position: center;
  padding-left: 7px;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a class='plus-symbol id_1' id="1">data</a><br><br>
<button type="button" id='disable-click'>Disable Click</a>
<button type="button" id='enable-click'>Enable Click</a>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

disabled行为与JavaScript无关。它仍然是可点击的。您可以尝试从id中移除<a>,以便它不会再触发任何JS事件。喜欢的东西;

removeAttr("id")

试一试。

另外,试试;

$("#1").click(function(){
   if(!$(this).hasClass('minus-symbol')){
      alert('data');
      $(this).removeClass('plus-symbol').addClass('minus-symbol').attr('disabled','true').hide();
   }else{
      alert('data1');
      $(this).addClass('plus-symbol').removeClass('minus-symbol');
   }
});