如何防止HTML.ActionLink上的默认?

在我的母版页中,我有以下ActionLink:

 

在我看来,这个主页中的哪个inherts,我定义了以下click事件:

  $(document).ready(function () { $("#resetButton").click(function (e) { var context = org.testportal.context; var appId = context.currentApplicationId; var userId = context.currentUserId; var hwid = context.currentHwid; if (contextIsValid()) { $.get('/State/ResetState', { applicationId: appId, userId: userId, hwid: hwid }, function (data) { openDialogBox(data); }, "json"); } else { var data = { message: "Invalid Context" }; openDialogBox(data); } e.preventDefault(); }); //resetState }); 

目前,当用户单击链接时,“重置状态”链接使用NULL参数向我的控制器操作发出GET请求。 永远不会引发click事件,并且不会停止事件默认值(因此会出现)。 上面的javascript添加在我的视图的页脚中。

使用Firebug我可以看到事件绑定在$(document).ready()上。 此时在页面上找到$(“#resetButton”)。 当事件被绑定时,我使用手表确保了这一点。

关于为什么我的js可能不会被解雇的任何想法?

谢谢

漠视

我是个傻瓜。 我在脚本中发现了一个js错误。

我通常添加return false以防止click事件的默认行为:

 $(document).ready(function () { $("#resetButton").click(function (e) { var context = org.testportal.context; var appId = context.currentApplicationId; var userId = context.currentUserId; var hwid = context.currentHwid; if (contextIsValid()) { $.get('/State/ResetState', { applicationId: appId, userId: userId, hwid: hwid }, function (data) { openDialogBox(data); }, "json"); } else { var data = { message: "Invalid Context" }; openDialogBox(data); } return false; }); //resetState }); 

如果仍然没有阻止默认行为,那么您的事件不是绑定,这意味着在调用document.ready时您的resetButton不存在。

如果你有一个id =’link’的锚,你可以这样做以防止默认行为:

 $('#linl').click(function (e) { e.preventDefault(); } 

如果您希望特定种类的所有超链接都具有此行为:

 $('a[name=modal]').click(function (e) { e.preventDefault(); .... } 

此处任何link都会阻止默认行为。

这就是我如何从超链接加载模态窗口。

希望能帮助到你。

谢谢