2

所以我有 2 个按钮(接受,拒绝),它们都显示了一个带有另一个按钮的相关 div。

单击第三个按钮(For Accept)时,我想在单击 Accept 后禁用第二个(Deny)以在 Accept 表单中滑动,然后单击 Send Accept 按钮。

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

在此处输入图像描述

单击“发送接受”后,我删除了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');
});

有什么想法/提示吗?

4

3 回答 3

3

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

$(btn_deny).off("click");
于 2013-09-09T17:32:33.570 回答
1

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

$('#mybutton').click(function() {
    if (!$(this).hasClass('btn-disabled')) {
        /* process button click */
    } else {
        /* cancel */
    }
});
于 2013-09-09T17:30:35.083 回答
1

用户单击“#btn_send_accept”后,您必须“取消绑定”它

$(btn_deny).removeClass('option');
$(btn_deny).removeClass('btn_deny');
$(btn_deny).addClass('btn-disabled');
$(btn_deny).unbind('click');
于 2013-09-09T17:43:53.493 回答