gpt4 book ai didi

jquery - 取消选择 jQuery 中的元素

转载 作者:行者123 更新时间:2023-12-01 06:13:14 25 4
gpt4 key购买 nike

我有一个 span 元素的集合。在代码中,我有一个表示“选定”对象的全局变量。单击 span 时使用 click 事件,我重置对象的类,重置全局变量,然后将对象设置为变量并更改其类(使其成为“突出显示”)。这可以在单击对象时有效地切换选择。

var currentItem = null;
$( ".item" ).click( function() {
if( $( this ).hasClass( "selected" ) ) {
$( this ).removeClass( "selected" )
currentItem = null;
} else {
if( $( ".item" ).hasClass( "selected" ) ){
$( ".item" ).removeClass( "selected" )
}

$( this ).addClass( "selected" );
currentItem = $( this );
}
} );

我希望能够在单击页面的空白区域时取消选择。我尝试在 body 对象上创建一个单击事件,但这会覆盖 span 单击事件,因此未选择任何内容。我是一个十足的 jQuery 菜鸟,不知道该去哪里。

最佳答案

使用 event.stopPropagation() 在您当前的处理程序中,这样 click不会冒泡到 <body> ,也触发它的处理程序,然后你的方法就可以工作,如下所示:

var currentItem = null;
$(".item").click(function(e) {
if($(this).hasClass("selected")) {
$(this).removeClass("selected")
currentItem = null;
} else {
$(".item.selected").removeClass("selected");
currentItem = $(this).addClass("selected");
}
e.stopPropagation();
});
$(document).click(function() {
$(".item.selected").removeClass("selected");
});

You can view a demo here ,但有一个建议,如果只有一个元素可以是 selected你需要跟踪它吗?如果查找成本不是一个因素,您可以找到 currentItem通过这样做$(".item.selected") ,大大简化了这段代码。我不确定你如何使用currentItem ,只是你的一个选择:)

关于jquery - 取消选择 jQuery 中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2990192/

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