如何防止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
都会阻止默认行为。
这就是我如何从超链接加载模态窗口。
希望能帮助到你。
谢谢