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>

我的问题是更改复选框不会触发事件。

如果我在服务器上的 razor 中生成上述 html,但当我在客户端生成上述 html 时,它可以正常工作吗?

我错过了什么??请帮忙。

提前致谢。

4

1 回答 1

0

必须使用jQuery 的.on()功能来连接在加载时不发生的事件。

于 2012-12-11T22:26:15.623 回答