1

この問題を 2 日間解決しようとしてきましたが、頭がおかしくなってきました。少し助けてください。アンカー内に新しい div (html コードを挿入) を追加しようとしていますが、問題ないようですが、リンクが機能しません。class='delete' を使用して、別の jquery 関数を呼び出して新しい div 要素を削除しようとしています。アイデアはショッピングカートで、商品を追加し、追加した後に削除したいのですが、うまくいきません。これが私のコードです:

$("#dialog-form").dialog({
    autoOpen: false,
    height: 320,
    width: 320,
    modal: true,
    show: 'slide',
    buttons: {
        "Agregar Tour": function () {
            var bValid = true;
            allFields.removeClass("ui-state-error");

            bValid = bValid && checkLength(adl, "Adultos", 1, 5);
            bValid = bValid && checkLength(chls, "Niños", 0, 5);
            bValid = bValid && checkLength(fecha, "Fecha", 1, 16);

            var id = $(this).val("id");
            var string = 'tourid=' + tourid;
            //var tourid = '<?php echo $moneda ?>';
            //alert(tourid);
            if (bValid) {
                $.ajax({
                    url: "add_item.php",
                    data: "tourid=" + tourid + "&adl=" + adl.val() + "&chl=" + chls.val() + "&fecha=" + fecha + "",
                    dataType: 'json',
                    type: "GET",
                    cache: false,
                    success: function (data) {
                        var regis = data[0];
                        var titulo = data[6];
                        var desc = data[7];
                        var total = data[12];
                        var foto = data[15];
                        var items = data[21];
                        var ruta = "images/hoteles/" + foto + "";


                        $("#containerx").append("<div id='containerx' class='koko' ><b><font color='#3399CC'>" + titulo + "</font></b><br>" + desc + "<br>" + "<b><font color='#ff0099'>Sub-total </font></b><image src='images/arrow.gif'> $" + total + " MXP " + "<a href='#' id=" + regis + " class='delele'>" + "<image src='images/delete.gif'></a></div><div style='clear:both;'></div>");
                        $("#containerx.koko").fadeTo(1000, 0.7);




                        $("#dialog-message").dialog({
                            modal: true,
                            show: 'slide',
                            buttons: {
                                Ok: function () {
                                    $(this).dialog("close");
                                }
                            }
                        });

                        $("#items").html("<div id='items'>[" + items + "]</div>");

                        $('#load').fadeOut();

                    }
                });
                $(this).dialog("close");
            }
        },
        Cancel: function () {
            $(this).dialog("close");
        }
    },
    close: function () {
        allFields.val("").removeClass("ui-state-error");
    }
});

$(".add-item").button().click(function () {
    tourid = $(this).attr("id");
    $("#dialog-form").dialog("open");
});
4

1 に答える 1

0

この「削除」イベントなどでは、「ライブ」jquery live http://api.jquery.com/live/を使用するか、コンテンツを追加した後にイベントを再度添付する必要があります。

コンテンツがレンダリングされると、すべてのイベントが添付されます。新しいコンテンツを動的に追加する場合、イベントが「ライブ」イベントでない場合は、イベントを再度添付する必要があります。

jquery "Live" イベントは、動的に追加されたコンテンツにもアタッチしようとします:)。私が追加したドキュメントを読むと、すべてがわかります。

于 2012-04-29T14:56:17.593 に答える