-2

我目前正在创建一个 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 函数,那就太好了。

4

1 回答 1

3

preventDefaultevent对象的方法。您将event对象的引用作为点击事件处理程序的第一个参数......</p>

$(".ajax").click(function (event) {
    var path = $(this).attr("href");
    GetContent(path);
    event.preventDefault();
});
于 2013-01-20T09:42:53.737 回答