gpt4 book ai didi

javascript 没有看到第一次点击?

转载 作者:行者123 更新时间:2023-11-28 13:38:43 25 4
gpt4 key购买 nike

我有一个表,用户可以通过复选框选择某些行。我有一些 javascript,让他们选择每个复选框并选择全部。我还编写了一些 javascript 来让用户选中一个复选框,然后按住 Shift 键并单击另一个复选框,并且之间的所有复选框都应该被选中。

所有这些都有效,唯一的问题是第一个复选框未被识别。因此,当用户按住 Shift 键并选择另一个复选框时,只会选中该复选框。但是,如果用户按住 Shift 键并选择第三个复选框,则第二个和第三个之间的所有框都会被选中。

Javascript

$(document).ready(function () {
$(this).click(function () {
//shift-click checkboxes
var lastChecked = null;
var handleChecked = function (e) {
//alert(lastChecked);
if (lastChecked && e.shiftKey) {
var i = $('input[type="checkbox"]').index(lastChecked);
var j = $('input[type="checkbox"]').index(e.target);

var checkboxes = [];
if (j > i) {
checkboxes = $('input[type="checkbox"]:gt(' + (i - 1) + '):lt(' + (j - i) + ')');
} else {
checkboxes = $('input[type="checkbox"]:gt(' + j + '):lt(' + (i - j) + ')');
}

if (!$(e.target).is(':checked')) {
$(checkboxes).removeAttr('checked');
} else {
$(checkboxes).attr('checked', 'checked');
}
}
lastChecked = e.target;
} //handleChecked
$('input[type=checkbox]').click(handleChecked);
}); //$(this).click(function())

//select all checkboxes
$('#selectall').click(function (i, v) {
$('.selectedId').prop('checked', this.checked);
});

var checkCount = $('.selectedId').length;
$('.selectedId').click(function (i, v) {
$('#selectall').prop('checked', $('.selectedId:checked').length == checkCount)
});
}); //ready function

我做了一个 fiddle 来复制这个问题。

http://jsfiddle.net/tihg7947/JXnNK/

要复制我的问题,请选中一个框(全选除外),然后按住 Shift 并选择另一个框。

我是网页设计新手,不知道如何诊断此问题(事件处理?)。我将不胜感激任何帮助或指导。

最佳答案

您正在 $(this).click(function () { 函数内绑定(bind) $('input[type=checkbox]') ,因此它第一次不起作用

您在$(document).ready(function () {

内绑定(bind)事件

据我了解,删除 $(this).click(function () {

Fiddle Demo

关于javascript 没有看到第一次点击?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19521517/

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