私は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を生成した場合は正しく機能しますが、上記のようにクライアントで生成した場合は機能しませんか?
私は何が欠けていますか?助けてください。
前もって感謝します。