2

dom が作成された後に読み込まれた html 要素に対するデフォルトのイベント アクションを防ぐにはどうすればよいですか。コードの最初の行でわかるように、jquery .load メソッドを介して別のページを含むページがあります。

3 行目から始まるコードが機能していないようです。a.clearCart のリンクをクリックすると、ブラウザはバックグラウンドでページを要求する代わりにページをロードするだけです。クラス clearCart とのリンクは、'Cart.php' という別のファイルにあり、ページの準備ができたときにロードされます。

以下のページは:index.php

$(document).ready(function(e) {
    $('#cart').load('./ajax/Cart.php');//a.clearCart is located in this file    



    $("a.clearCart").click(function(e)
    {
        e.preventDefault();
        return false;
        $.getJSON('./ajax/clearCart.php?','id=12',check);
        function check(data)
        {
            if(data.Status == "Success")
            {
                alert("Update Cart");//For Debugging Only,should call UpdateCart()
            }
            else if(data.Status == "Failed")
            {
                alert("WTF");//Welcome to Finland
            }
        }
    });





    function UpdateCart()
    {
        $('#cart').load('./ajax/Cart.php');
    }
    $('.formInfo form').submit(function(e) {

        var id = this.prodId.value;
        var qta = this.qty.value;
        var data = {prodId:id,qty:qta};
        $.getJSON('./ajax/addcart.php',data,processData);

        function processData(data)
        {
            if($('p.message').text().length > 5)
            {
                $('p.message').empty().removeClass('.success').removeClass('failure');

            }
            if(data.Status == "Failed")
            {
                $('p.message').append(data.Reason).addClass('failure');
            }
            else if(data.Status == "Success")
            {
                $('p.message').append(data.Reason).addClass('success');
                UpdateCart();
            }
        }

        return false;
    });


});
4

2 に答える 2

2

使用live()またはon()機能することができます。jQuery 1.7の時点で非推奨になってon()いるため、次のように表示します。live()

変化する

$("a.clearCart").click(function(e)

$(document).on('click', 'a.clearCart', function(e) {
    // Code goes here
}).

見る

于 2012-07-14T21:15:08.923 に答える
1

が含まれているため、クリック機能は何もしませんreturn false;。これにより、 が返されて関数が終了しますfalse

それを削除すると、ajax コードが実行されます。

于 2012-07-14T21:18:06.887 に答える