0

我有从 ajax 添加的链接,带有 target="_top"。

我想取消重定向。

html:

<ul id="controllerNav">
   <li>
       <a href="https://www.yacht.de/mein_dk/login.html" target="_top" title="Login">Login</a>
   </li>
</ul>

查询:

$('#controllerNav a').live('click', function(event){
    event.preventDefault();
    event.stopPropagation();
    return false;
});

现在,函数出现了,但在它完成链接的操作后,也会出现“return false”和其他行。

4

2 回答 2

4

在 HTML 部分添加onclick并停止重定向

<ul id="controllerNav">
   <li>
       <a href="https://www.yacht.de/mein_dk/login.html" target="_top" title="Login" onclick="return false;">Login</a>
   </li>
</ul>
于 2013-07-09T08:28:36.947 回答
1

@FredericHamidi 评论了这个答案的先前版本,说不能取消委托事件处理程序,主要是因为,根据 jQuery 委托事件的工作方式,点击事件将<a>在委托处理程序被触发时被评估off(因此,取消重定向的时间已经过去)。

您在问题中提到您<a>是通过 AJAX 加载的。此时,最好的解决方案可能就是向<a>您的<a>.

您必须通过经典绑定添加点击处理程序,然后从那里开始工作:

$.ajax({
    // ...
})
.done(function (m) {
    var link = $('<a>').on('click', function (event) {
        event.preventDefault();
    });
    // do whatever else with the link
    link.appendTo('something');
});
于 2013-07-09T08:28:17.017 回答