gpt4 book ai didi

javascript - 在 ie8 中使用 e.target.tagName 或 .prop 的问题

转载 作者:太空宇宙 更新时间:2023-11-04 12:10:42 27 4
gpt4 key购买 nike

我有以下逻辑,在我测试的所有浏览器中都运行良好,除了 ie8

$('.has_tags li').click(function(e) {
if($(this).hasClass('tag_clicked') && e.target.tagName !== 'LABEL') {
$(this)
.removeClass('tag_clicked')
.children('input').prop('checked', false);

} else if (!$(this).hasClass('tag_clicked') && e.target.tagName !== 'LABEL') {
$(this)
.addClass('tag_clicked')
.children('input').prop('checked', true);
}
});

简而言之,它会检查是否单击了列表元素,是否为它设置了样式当前列表的广告类并检查关联的输入,但是如果单击了此类列表元素内的标签,则它会忽略它,因为单击标签是等于点击复选框。但是,当单击列表元素时,ie8 处理得很好,但是当单击与其关联的标签时,什么也没有发生。这是 jsfidle

最佳答案

我建议在 INPUT 上添加事件,当你点击 LI 时触发它

$('.has_tags li').on('click', function(e){
var $target = $(e.target);
var $input = $(this).find('input');

if($target.closest('input').length || $target.closest('label').length) return;

$input.prop('checked', !$input.prop('checked')).trigger('change');
});

$('.has_tags input').on('change.checkbox', function(e){
var $input = $(this).closest('li');

if(this.checked) {
$input.addClass('tag_clicked');
} else {
$input.removeClass('tag_clicked');
}
}).trigger('change.checkbox');

https://jsfiddle.net/aL5uuwng/1/

关于javascript - 在 ie8 中使用 e.target.tagName 或 .prop 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29077458/

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