javascript - 如何在 Jquery 中删除和添加回或绑定(bind)和取消绑定(bind)单击事件

标签 javascript jquery html jquery-ui jquery-dialog

我想启用和禁用 Jquery 对话框的单击事件,因此如果用户单击“Link #1”,对话框将打开一次,关闭时应禁用“Link #1” 1”,除非用户单击“Link #2”

,否则链接不应打开对话框

我尝试使用.unbind()方法使用jquery,但它没有启用我的按钮第一个链接。它永久禁用点击事件。

或者是否有任何其他“Jquery UI 对话框”方法允许不打开对话框?

这是我的代码:

HTML

    <span title="Accept" class="Accepted">Accept</span>
    <span title="Reject" class="Rejected">Reject</span>

JQUERY

    $(".Accepted").click(aceeptMethod);
        $(".Rejected").click(function () {
            $(this).closest('.rx-container').addClass('selected');
            $("#rejectReason").dialog("open");
        });

    $("#rejectReason").dialog({
            autoOpen: false,
            modal: true,
            buttons: {
                "Submit": function () {
                    $(this).dialog("close");
                    rejectMethod();
                },
                    "Cancel": function () {
                    $(this).dialog("close");
                }
            }
        });

       function aceeptMethod() {
            var $parent = $(this).closest('.rx-container');

            $(this).next().bind('click'); // BINDING BACK THE CLICK EVENT
            $('.rx-statusRejected', $parent).hide();
            $('.rx-statusAccepted', $parent).show();
            $('.rejectReasonBox', $parent).hide();
        }

        function rejectMethod() {
            $('.selected .rx-statusRejected').show();
            $(".selected .rx-statusAccepted").hide();
            $(".selected .rejectReasonBox").show();
            $('.selected .Rejected').unbind('click'); // UNBINDING THE CLICK EVENT
        }

这是显示我的代码如何工作的 fiddle : <强> http://jsfiddle.net/aasthatuteja/W97wP/

请提出建议!

最佳答案

如果您更改输入元素的链接,则可以使用禁用属性。如果您想取消绑定(bind)然后重新绑定(bind)点击事件,则需要重新调用在原始点击事件中调用的新点击事件内的所有代码。

此外,您没有使用以下代码来定位被拒绝的范围。您的目标是 <br>标签。

$(this).next().bind('click'); 

你可以尝试这样的 siblings 函数。

$(this).siblings(".Rejected").bind('click');

用原来的代码重新绑定(bind)。

  $(this).siblings(".Rejected").bind('click',function () {
      $(this).closest('.rx-container').addClass('selected');
      $("#rejectReason").dialog("open");
  });

关于javascript - 如何在 Jquery 中删除和添加回或绑定(bind)和取消绑定(bind)单击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20053129/

相关文章:

javascript - HTML 密码验证

javascript - 试图阻止 Javascript 在页面加载时运行

javascript - 尝试使用 jQuery.ajax 发送 FormData 时出错

javascript - 为什么不应用 css 类?

javascript - 如何让一条线跟随鼠标悬停,同时放大图表?

javascript - 如何将 json 转换为 javascript 数组?

javascript - Laravel 名媛弹出窗口

javascript - body 不是 100% using::after pseudo

javascript 如何使用按钮在不同的文本框中输入(我只能在十进制文本框中输入)

javascript - 检查下一个元素是否具有特定的类