gpt4 book ai didi

javascript - jQuery/JavaScript : Click event on a checkbox and the 'checked' attribute

转载 作者:可可西里 更新时间:2023-11-01 01:50:40 25 4
gpt4 key购买 nike

代码:

$('input.media-checkbox').live('click', function(e){

e.preventDefault();
var that = $(this);

if (that.attr('checked') == 'checked'){

var m = that.attr('media');
var mid = 'verify_' + m;
that.parents('div.state-container').find('ul.' + mid).remove();
that.attr('checked', false);
} else {

var url = AJAX_URL;

$.ajax({
type: 'GET',
url: url,
dataType: 'html',
success: function(data){

that.parents('li').siblings('li.verification').children('div.media-verification').append(data).fadeIn(500);
that.attr('checked', 'checked');
}
});
}

return false;
});

我在表单中使用 ajax,然后在必要时将相关复选框上的点击事件触发到另一个部分中的 ajax。表单被很好地插入,点击事件被触发,选中需要被选中的框并触发第二个 ajax,因为复选框的 checked 属性最初是 false.

让我的奶酪凝结的是,如果我取消选中其中一个框。尽管 e.preventDefault()checked 属性在测试前设置为 false,因此 if 语句始终执行 else 语句。我也用 $.is(':checked') 试过了,所以我完全不知所措。

似乎 unchecked -> checked 状态读取原始状态,但 checked -> unchecked 不会。有帮助吗?

最佳答案

B.E.,我知道已经过去一年了,但我想我找到了解决方案,

这里的问题是,在将“checked”属性添加到复选框输入之前,click 事件实际上被调用并运行。因此函数运行,查看输入是否具有“checked”属性,并运行 else 条件。然后该元素被赋予“checked”属性。

我也遇到了这个问题,我的解决方案是将函数绑定(bind)到 change 函数而不是 click 函数,因为 change 只会在输入的选中属性更新后触发。

希望这对您有所帮助,如果没有,也希望对遇到类似问题时偶然发现这篇文章的任何其他人有所帮助。

关于javascript - jQuery/JavaScript : Click event on a checkbox and the 'checked' attribute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2786223/

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