1

我一直在使用空的 href (href="#") 并允许 jQuery click 事件从我的控制器中获取数据并将其显示在部分视图中。

但是,我想实现 jQuery 地址插件,以便可以使用后退按钮。据我所知,我需要停止使用空的href。(我想空的href也是不好的做法。)

我的新链接看起来像这样。

<a href="/Stop/Details/<%: item.StopID %>">
    <div class="stopId"><%: item.StopID %></div>
</a>

但现在不是我的 jQuery click 事件捕获它,而是立即重定向到 /Stop/Details,这不是我想要的,因为那是部分视图。我怎样才能解决这个问题?

编辑:我刚刚意识到我的标题与问题不准确。对于那个很抱歉。将尝试想出一个更准确的标题并更改它。

双重编辑:还意识到不应将 div 嵌套在链接中。

我的点击事件实际上是实时点击。它看起来像这样:

$(function () {
$(".stopId").live('click', function () {
    var stopId = $(this).html()

        $.post('<%= Url.Action("Details") %>',
    { id: stopd },
    handleSuccess
        );
});
});
4

2 回答 2

2

您可能希望阻止默认操作在您的锚点的点击功能中发生。当您单击该链接时,这将阻止浏览器跟踪该链接。您没有发布您的 jQuery 点击代码,但它应该是这样的:

$('a').click(function(e) { //Edit note the e
    //Your code here
    e.preventDefault(); //This stops the browser from following the link
});

编辑
实际上,在查看了jQuery 地址插件文档之后,我想你想让链接看起来像这样:(<a href="#/Stop/Details/<%: item.StopID %>">注意 #)。这也可以解决您的问题。

于 2011-04-06T18:20:24.910 回答
2

如果没有看到您的 jQuery 点击处理程序,我无法确定,但您是否记得使用return falseor event.preventDefault

$('a').click(
    function(){
        // other stuff
        return false;
    });

或者:

$('a').click(
    function(e){
        e.preventDefault;
        // other stuff
    });

参考:

于 2011-04-06T18:21:17.343 回答