0

私の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です

4

2 に答える 2

3

セレクターは次のようになりますa.delete-スペースの不足に注意してください。

記述されているように、セレクターがそのクラスを持つクラスではなく、.delete子孫であるクラスの要素を探しているため、コールバックハンドラーは呼び出されていません。<a><a>

次に、セキュリティ上の理由から、リモートリソースにアクセスする場合、ブラウザがリンクの乗っ取りを許可しない場合があります。

@NickWが指摘しているように、ページローカルリンク(で始まる#)はリダイレクトできます。ただし、JSなしでページを正しく機能させたい場合は、それができない場合があります。

その場合の簡単な修正は、ページが読み込まれるときにJSを使用してそのようなすべてのリンクを書き換えることです。

$('a[href^="/"]').attr('href', function(index, val) {
    return '#' + val;
});
于 2012-10-10T07:04:00.660 に答える
1

#が前に付いている場合hrefは、リダイレクトを回避できるはずです。私はあなたのJSフィドルをフォークし、@Alnitakからのセレクターの変更を追加しました。

于 2012-10-10T07:07:10.030 に答える