使用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并调用它,但是上面的方法可行。