我有一个页面(asp.net),我在其中捕获链接的click事件。 然后我做一些脏检查并向用户提供一个对话框,
$(function() {
var clickedLink;
$('.checkdirty').click(function(event) {
if(isDirty == false){
return true;
}
clickedLink = $(this);
$('#dirtysave-dialog').dialog('open');
return false;
});
});
您想要删除您的更改是/否等。
$('#dirtysave-dialog').dialog({ bgiframe: true, autoOpen: false,
height: 125, width: 425, modal: true,
title: "You have unsaved changes, do you want to continue and loose changes?!!",
buttons: {
"Yes": function() {
isDirty = false;
$(this).dialog("close");
$(clickedLink).click();
},
"No": function() {
$(this).dialog("close");
}
},
open: function(type, data) {
$(this).parent().appendTo("form");
}
});
如果他们单击是,则清除isDirty标志并单击链接。这将返回到click事件处理程序,进行检查
if(isDirty == false){
return true;
}
返回true但事件永远不会发生....
我需要再次手动点击该链接才能触发。
任何想法??
答案 0 :(得分:1)
.click()
仅触发onclick
的事件处理程序,它实际上并未实现跟随链接的默认操作。可能最快的方法就是手动完成:
window.location= clickedLink.href;
PS。 “输”
答案 1 :(得分:-3)
您可以使用trigger function,更改:
$(clickedLink).click();
到
$(clickedLink).trigger("click");
更好的方法是将您的点击功能分成一个单独的功能并调用它,但上述方法可以正常工作。