问题

我遇到一个奇怪的问题.我有一个带有复选框列的表.我正在使用JQuery Mobile复选框.我想要点击一行与之相关联,点击此行中的复选框.

<强> 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:这是在&lt; td class ="hyperlink"&gt;

<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"

当我点击 SAME 第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('refresh')"现在在a3中打破



解决方法

而不是使用 .attr()使用 .prop(),然后使用 .checkboxradio(‘refresh’)

Demo




相关问题推荐