在jquery中永久添加禁用属性删除点击事件?

时间:2014-09-03 11:51:28

标签: javascript jquery

考虑下面的jquery代码,单击 input1 input2 后,单击处理程序事件将被删除。单击 input3 并再次启用该元素时,单击处理程序会发生什么? 我一直在做的一些测试表明它不再存在,如果它已被删除,我如何在下面的情况下重新启用它?

<input id="input1"> 
<input id="input2">
<input id="input3">
$("#input1").on('click', function() {
  $("#input2").prop('disabled', 'true');
  // do something
});
$("#input3").on('click', function() {
  $("#input2").prop('disabled', 'false');
});
$("#input2").on('click', function() {
  // do something
});

2 个答案:

答案 0 :(得分:1)

您对prop的使用不正确。它需要disabled属性的布尔值。使用字符串"true""false"将始终评估为true

$("#input1").on('click', function() {
  $("#input2").prop('disabled', true);
  // do something
});
$("#input3").on('click', function() {
  $("#input2").prop('disabled', false);
});
$("#input2").on('click', function() {
  // do something
});

jsFiddle

答案 1 :(得分:0)

使用如下

  $("#input1").on('click', function() {
      $("#input2").prop('disabled', 'disabled');
      // do something
  });
  $("#input3").on('click', function() {
      $("#input2").removeAttr('disabled');
  });
  $("#input2").on('click', function() {
    // do something
  });