我有一个从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>
Jquery的:
$('#controllerNav a').live('click', function(event){
event.preventDefault();
event.stopPropagation();
return false;
});
现在,该功能发生了,但是在完成链接操作后也会发生&#34;返回false&#34;和其他行。
答案 0 :(得分: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>
答案 1 :(得分:1)
@FredericHamidi对此答案的先前版本发表了评论,称委托事件处理程序无法取消主要是因为根据jQuery委派事件的工作方式,点击事件将在<a>
上进行评估在委托处理程序被触发时(因此,取消重定向的时间已经过去)。
您在问题中提到您的<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');
});