gpt4 book ai didi

检查所有复选框的 jquery 前向兼容性问题

转载 作者:行者123 更新时间:2023-12-01 06:50:56 26 4
gpt4 key购买 nike

我有一个使用 jquery 的 js 函数,可以在 1.8.3.js 上正常工作,但是当我更新到 1.9.1.js 时它会退出。我现在真的对jquery一无所知(它在要学习的内容列表中,很快就会出现),所以我真的无法通过查看它来判断问题可能出在哪里。这是代码:

<script type="text/javascript">
var allCheckBoxSelector = '#<%=GridView1.ClientID%>
input[id*="chkAll"]:checkbox';
var checkBoxSelector = '#<%=GridView1.ClientID%>
input[id*="chkSelected"]:checkbox';

function ToggleCheckUncheckAllOptionAsNeeded()
{
var totalCheckboxes = $(checkBoxSelector),
checkedCheckboxes = totalCheckboxes.filter(":checked"),
noCheckboxesAreChecked = (checkedCheckboxes.length === 0),
allCheckboxesAreChecked = (totalCheckboxes.length ===
checkedCheckboxes.length);

$(allCheckBoxSelector).prop('checked', allCheckboxesAreChecked);
}

$(document).ready(function ()
{
$(allCheckBoxSelector).live('click', function ()
{
$(checkBoxSelector).prop('checked', $(this).is(':checked'));

ToggleCheckUncheckAllOptionAsNeeded();
});

$(checkBoxSelector).live('click', ToggleCheckUncheckAllOptionAsNeeded);

ToggleCheckUncheckAllOptionAsNeeded();
});
</script>

对于这里的问题有什么建议吗?同样,当引用 1.8.3.js 时,它工作得很好,但是当使用 1.9.1.js 时,选中“全部选中”框没有任何效果。

最佳答案

.live() 函数在 jQuery 1.7 中已被弃用,最终在 jQuery 1.9 中被完全删除。您的代码不再有效,因为您试图调用不再存在的函数。使用 .on() 的委托(delegate)事件语法代替 .live()。所以改变这个:

$(allCheckBoxSelector).live('click', function () {
$(checkBoxSelector).attr('checked', $(this).is(':checked'));
ToggleCheckUncheckAllOptionAsNeeded();
});

$(checkBoxSelector).live('click', ToggleCheckUncheckAllOptionAsNeeded);

对此:

$(document).on('click', allCheckBoxSelector, function () {
$(checkBoxSelector).prop('checked', $(this).is(':checked'));
ToggleCheckUncheckAllOptionAsNeeded();
});

$(document).on('click', checkBoxSelector, ToggleCheckUncheckAllOptionAsNeeded);

有关将 .live() 转换为 .on() 的更多详细信息,请参阅 API doc for .live() .

关于检查所有复选框的 jquery 前向兼容性问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15027664/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com