0

私はここで頭を壁にぶつけていますが、明らかなことに目がくらんでいることを願っています。

私はこのDOM構造を持っています:

<ul>
    <li>
        <h3>Lorem ipusm</h3>
        <p class="remove-story"><a href="http://example.com/remove/XX">Delete</a></p>
    </li>
</ul>

そして、これは私のjQueryです:

$(".remove-story a").click(function()
    {
        var parent = $(this).closest('li');
        $.get($(this).attr('href'), function()
        {
            $(parent).fadeOut();
        });
        return false;
    });

このままでは、内のリンクをクリックして.remove-storyも何も起こらず、リンク内の URL によってトリガーされるアクションも発生しません。

ページの読み込み時またはリンクをクリックしたときに、コンソールに JS エラーがポップアップ表示されません。

関数を削除$.getしてリスト項目を単にフェードアウトすると、期待どおりに機能します。

URL に手動でアクセスすると (または を削除しreturn falseてリンクをクリックすると)、リンクが機能し、バックエンド アクションが完了します (ストーリーが削除されます)。

私のコードに誰でも見つけられるエラーはありますか? そうでない場合、これをトラブルシューティングするために次にどこを見るべきかについてのアイデアはありますか?

4

3 に答える 3

1

onclick を次のようにラップします$(document).ready(function() {})

$(".remove-story > a").click(function(e)
    {
        var parent = $(this).closest('li');
        alert($(this).attr('href'));
        $.ajax({
            url: $(this).attr('href'),
            success: function() {
                alert(12);
                $(parent).fadeOut();
            },
            error: function(e) {
                alert('baaaahhhh:' + e);
            }
        })
         //e.stopPropagation();
        return false;
    }); 


​

更新: Ajax リクエストの実行中にエラーが発生するかどうかを確認するように変更$.getされました。$.ajax

于 2012-12-17T16:14:32.700 に答える
1

まず、get リクエストが本当に送信されたかどうかを確認します。つまり、Fiddler や Chrome 開発者ツールのネットワーク タブなどのツールを使用してから、呼び出し内にブレーク ポイントを追加して、その特定のコンテキストでが何もないか間違っているかどうかを確認します。物体

于 2012-12-17T16:18:08.223 に答える
0

リンクをエンコードする必要がありますencodeURIComponent($(this).attr('href'));

これがjsfiddleの動作です: http://jsfiddle.net/9Wnt8/

于 2012-12-17T17:04:28.570 に答える