单击按钮后,无法禁用其他按钮

时间:2013-09-09 17:24:48

标签: javascript jquery css button

所以我有2个按钮(Accept,Deny),它们都用另一个按钮显示相关的div。

单击第3个按钮(For Accept)时,我想在单击“接受”后滑动“接受”表单,然后单击“发送接受”按钮,禁用第2个(拒绝)。

  • 点击接受
  • 点击发送接受
  • Box Deny按钮不再起作用

enter image description here

单击“发送接受”后,我删除了在拒绝时使用的类option,但操作仍然存在且“拒绝”按钮仍然有效:(

我的代码: http://codepen.io/leongaban/pen/hKDIJ

HTML

<div id="accept" class="option btn_accept">
  Accept
</div>

<div id="deny" class="option btn_deny">
  Deny
</div>

<div id="accept_msg">
<form id="accept_form">
  <textarea name="" id="" cols="30" rows="2">ACCEPT! textarea</textarea>
  <button id="send_accept">SEND ACCEPT</button>
</form>
</div>

<div id="deny_msg">
<form id="deny_form">
  <textarea name="" id="" cols="30" rows="2">DENY! textarea</textarea>
  <button id="send_deny">SEND DENY</button>
</form>
</div>

的jQuery

$('.option').unbind('click').bind("click", function() {

  var user_choice = $(this).attr('id');

  // IF ACCEPT
  if (user_choice === 'accept') {
    $('#accept_msg').slideDown('fast', function() {});
    $('#deny_msg').slideUp('fast', function() {});
    $('.btn_accept').css('background', 'orange');
    $('.btn_deny').css('background', '#ccc');
  // IF DENY
  } else if (user_choice === 'deny') {
    $('#accept_msg').slideUp('fast', function() {});
    $('#deny_msg').slideDown('fast', function() {});
    $('.btn_deny').css('background', 'blue');
    $('.btn_accept').css('background', '#ccc');
  }

});

$('#accept_form').unbind('submit').bind("submit", function() {
  var btn_send_accept = $('#send_accept');
  var btn_deny = $('#deny');

  $(btn_send_accept).css('cursor','auto');
  $(btn_send_accept).css('background','#ccc');
  $(btn_send_accept).text('Sending...');
  $(btn_send_accept).attr("disabled", "disabled");

  $(btn_deny).removeClass('option');
  $(btn_deny).removeClass('btn_deny');
  $(btn_deny).addClass('btn-disabled');
});

有任何想法/提示吗?

3 个答案:

答案 0 :(得分:3)

使用.off()禁用点击事件处理程序:

$(btn_deny).off("click");

答案 1 :(得分:1)

如果您已将按钮标记为已禁用,则可以使用hasClass jquery方法停止处理操作。例如:

$('#mybutton').click(function() {
    if (!$(this).hasClass('btn-disabled')) {
        /* process button click */
    } else {
        /* cancel */
    }
});

答案 2 :(得分:1)

用户点击“#btn_send_accept”后,你必须“.unbind”

$(btn_deny).removeClass('option');
$(btn_deny).removeClass('btn_deny');
$(btn_deny).addClass('btn-disabled');
$(btn_deny).unbind('click');