我遇到了一个奇怪的问题。我有一张带有复选框列的桌子。我正在使用JQuery移动复选框。我希望单击一行与单击本行中的复选框相关联。
JS:
$(document).on('pagecreate', function (event) {
bindRowClick();
});
function bindRowClick() {
$('.productTable').find('tr').click(function () {
var chck = $(this).find('td.hyperLink').find('input[type=checkbox]:first');
var chckStatus = chck.is(':checked');
alert("chckStatus 1: " + chckStatus);
alert("!chckStatus: " + !chckStatus);
chck.attr('checked', !chckStatus).checkboxradio().checkboxradio('refresh');
alert("chckStatus 2: " + chck.is(':checked'));
});
}HTML: --这是在<td class="hyperlink">内部
<fieldset data-role="controlgroup" id="divCheckbox">
<asp:CheckBox runat="server" ID="checkboxSelect" CssClass="custom chckSelect"
meta:resourcekey="checkboxSelectResource1" />
<asp:Label ID="lblForChck" CssClass="lblForChck" AssociatedControlID="checkboxSelect" runat="server"
meta:resourcekey="lblForChckResource1" />
</fieldset>当我单击第1行时间时发生了什么(直到现在还没有选中复选框):
first alert returns: "chckStatus 1: false"
second alert returns: "!chckStatus: true"
third alert returns: "chckStatus 2: true"当我单击相同的第2行时发生了什么(前面选中了复选框):
first alert returns: "chckStatus 1: true"
second alert returns: "!chckStatus: false"
third alert returns: "chckStatus 2: false"和现在奇怪的部分
当我再次单击同一行时-而不是选择复选框(就像第一次一样),我得到了以下结果:
first alert returns: "chckStatus 1: true"
second alert returns: "!chckStatus: false"
third alert returns: "chckStatus 2: false"我发现的可能与这个问题有关的东西:以前工作的“.checkboxradio(‘刷新’)”现在在a3中中断了
发布于 2013-07-12 11:03:26
不要使用.attr(),而是使用.prop(),然后使用.checkboxradio('refresh')。
演示
https://stackoverflow.com/questions/17612806
复制相似问题