使用jQuery在链接上重新触发click事件

我有一个页面(asp.net),我在其中捕获链接的单击事件。 然后我做一些脏检查并向用户显示一个对话框,

$(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但事件永远不会发生….

我需要再次手动点击链接才能触发。

有任何想法吗??

.click()仅触发onclick的事件处理程序,它实际上并不会使链接发生的默认操作。 可能最快的方法就是手动执行:

 window.location= clickedLink.href; 

PS。 “失去”

你可以使用触发function ,改变:

 $(clickedLink).click(); 

 $(clickedLink).trigger("click"); 

更好的方法是将您的点击function分成一个单独的function并调用它,但是上面的方法可行。