0

私はJqueryに少し慣れておらず、この問題を抱えています。

これは私のJavaScriptです

$(document).ready(function () {

    $("input.selected").change(function () {

        var cbid = $(this).attr('id');

        var id = cbid.substring(3);

        var base = window.location.host;

        if ($(this).is(':checked')) {
            $.ajax({
                type: "Get",
                url: "/api/SPChoices/" + id,
                success: function (data) {
                    alert("Choice succesfully saved.");
                },
                error: function (data) {
                    alert("This user cannot be added.");
                }
            });
        }
        else {
            $.ajax({
                type: "Delete",
                url: "/api/SPChoices/" + id,
                success: function (data) {
                    alert("Choice succesfully removed." + data);
                },
                error: function (data) {
                    alert("This user cannot be deleted");
                }
            });

        }
    });

    $.ajax({
        type: "Get",
        url: "/api/SPChoices",
        data: "{'Count':'7'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            ApplyTemplate(msg);
        }
    });



});

テンプレートを適用しながら、コードのhtmlを生成します。正しく生成されています。

function ApplyTemplate(msg) {

    $("#HBsTemplate").tmpl(msg).appendTo("#Container");

}

</script>

<script id="HBsTemplate" type="text/x-jquery-tmpl"> 
<div>
            <div style=" float:left">
            <img id="imgChooseHBpp" src="/Images/2.png" alt="alt text" />
            </div>
            <div>
                <h3>${HostedBuyer.Name}</h3>
                <p>templ</p>
                <input class='selected' type='checkbox' {{if IsSelected}}         checked="yes" {{/if}}   id='cb_${HostedBuyer.id}' />
            </div>
</div>
</script>

私の問題は、チェックボックスを変更してもイベントがトリガーされないことです。

サーバー上のかみそりで上記のhtmlを生成した場合は正しく機能しますが、上記のようにクライアントで生成した場合は機能しませんか?

私は何が欠けていますか?助けてください。

前もって感謝します。

4

1 に答える 1

0

ロード時に発生しないイベントをフックするには、jQuery の.on()機能を使用する必要があります。

于 2012-12-11T22:26:15.623 に答える