我想为Jquery对话框启用和禁用单击事件,因此如果用户单击“Link#1”,对话框将打开一次并关闭它应禁用“链接#” 1“,除非用户点击”Link#2“
,否则链接不应打开对话框我使用 .unbind()方法尝试了jquery,但它没有启用我的按钮第一个链接。它会永久禁用点击事件。
或者是否有其他方法使用“Jquery UI Dialog”允许不打开对话框?
这是我的代码:
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
}
这是表示我的代码如何工作的小提琴: 的 http://jsfiddle.net/aasthatuteja/W97wP/
请建议!
答案 0 :(得分:2)
如果更改了输入元素的链接,则可以使用disabled属性。如果要取消绑定然后再绑定click事件,则需要重新调用在原始click事件中调用的新click事件中的所有代码。
此外,您还没有使用以下代码定位被拒绝的跨度。您定位<br>
代码。
$(this).next().bind('click');
你可以尝试这样的sibliings功能。
$(this).siblings(".Rejected").bind('click');
重新绑定原始代码。
$(this).siblings(".Rejected").bind('click',function () {
$(this).closest('.rx-container').addClass('selected');
$("#rejectReason").dialog("open");
});
答案 1 :(得分:0)
我建议禁用你需要的任何按钮,而不是使用unbind。
例如,如果在使用后单击“拒绝”,如果您不希望它们再次单击“拒绝”,请在拒绝处理程序中使用此代码:
$(".Rejected").prop('disabled', true);
如果您想在用户改变主意并点击接受时重新启用此按钮,请在接受代码中使用此按钮:
$(".Rejected").prop('disabled', false);