我目前正在创建一个 MVC4 Web 应用程序,我似乎遇到了一个奇怪的问题。我创建了一个无序列表,其中包含一些列表项,以及它们各自的锚标记,我将能够在其中单击,这将返回各自的/CONTROLLER/ACTION视图。
<div>
<ul>
<li>
<a class="ajax" href="/Test/One"></a>
</li>
<li>
<a class="ajax" href="/Test/Two"></a>
</li>
<li>
<a class="ajax" href="/Test/Three"></a>
</li>
<li>
<a class="ajax" href="/Test/Four"></a>
</li>
</ul>
</div>
<div id="body">
</div>
然后我创建了一些 jQuery,当您单击任一锚标记时调用它,寻找“ajax”类,如果您要单击锚标记,它将运行另一个名为 GetContent 的函数,传递HREF值锚标记,将用作 ajax 调用的路径。
$(document).ready(function () {
$(".ajax").click(function () {
var path = $(this).attr("href");
GetContent(path);
});
});
function GetContent(path) {
$.ajax({
url: path,
type: 'POST',
async: false,
success: function (result) {
$("#body").html(result);
}
});
}
我听说过一个你可以调用的函数,我相信它叫做preventDefault 。我发现我不确定何时调用此 preventDefault 来覆盖锚标记的单击。
我确实尝试将它放在几个地方,但没有运气......我现在发现我可以点击任何锚标签,并且默认操作发生,它只是返回整个网站和新的查看已加载。但是,如果我在 google chrome 开发人员工具中打开控制台,并调用函数 GetContent,通过我期望的路径,它将调用该函数,返回 ajax,并更新我的网页。
如果有人能够指出我应该在哪里调用 preventDefault 函数,那就太好了。