preventDefault javascript不会阻止url重定向

时间:2012-10-10 06:59:30

标签: javascript preventdefault

我的HTML是

<a class="delete" href="/FolderComment/delete/12">delete</a>

我的js是

$("a .delete").click(function(e){

          //e.preventDefault();   --> tried that too
            var href = this.attr("href");
            $.post(
                href, {},
                function(data){
                    alert(data);
                }
            );
            return false;
        });  

但它不起作用,页面被重定向。

这是一个jsfiddle

2 个答案:

答案 0 :(得分:3)

您的选择器应为a.delete - 请注意缺少空间。

如上所述,您的回调处理程序甚至没有被调用,因为您的选择器正在查找.delete降级的类<a>的元素,而不是{{ 1}} 那个类。

其次,出于安全原因,如果他们要访问远程资源,您的浏览器可能不允许链接被劫持。

正如@NickW指出的那样,可以重定向页面本地链接(以<a>开头)。但是,如果您希望页面正常工作没有 JS,那么您可能无法做到这一点。

在这种情况下,一个简单的解决方法是使用JS在页面加载时重写所有这些链接:

#

答案 1 :(得分:1)

如果href前面带有#,则应该可以避免重定向。我已经分叉了你的JS fiddle并在@Alnitak中添加了选择器更改。