避免触发多次点击事件

时间:2014-11-19 10:16:19

标签: javascript jquery click

我点击其同级链接时尝试禁用/启用输入字段。

这是我的代码。

$('a').on('click',function(){
    var inp=$(this).siblings('input');
    inp.prop('disabled', false);
    $(this).click(function(){
        inp.prop('disabled', true);
    });
});

当我第一次点击它工作正常,但从下次它不会工作。因为这两个单击功能,触发器。我无法克服这个问题。请帮帮我。

See the fiddle.

4 个答案:

答案 0 :(得分:2)

只需在每次点击时否定disabled道具。 elem.disabled = ! elem.disabled

演示小提琴:http://jsfiddle.net/abhitalks/2a2ajbnb/1/

<强> 段:

$('a').on('click',function(){
    var $inp = $(this).siblings('input');
    $inp.prop('disabled', !$inp.prop('disabled'));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" name="x" value="22" disabled/><a href="#">change</a>

答案 1 :(得分:2)

试试这个:

$('a').on('click',function(){
    var inp=$(this).siblings('input');
    inp.prop('disabled', !inp.prop('disabled'));

});

答案 2 :(得分:1)

您可以尝试制作它,这样一次点击功能可以完成这两项工作,这可能更容易。否则,只需使用

关闭上一个点击功能
$('a').off('click');

答案 3 :(得分:1)

&#13;
&#13;
$('a').on('click', function() {

  if ($('#ib').attr('disabled') == 'disabled') {
    $('#ib').prop('disabled', false);
  } else {
    $('#ib').prop('disabled', true);
  }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input id='ib' type="text" name="x" value="22" disabled/>
<a href="#">change</a>
&#13;
&#13;
&#13;

DEMO