我想启用和禁用 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/