.addClass正常工作,但是当我在单击.close
元素时尝试删除同一元素上的同一个类时,没有任何反应。我已将原始元素保存在$currGallery
中。当我在click.log上点击它时,它会显示正确的元素对象。非常感谢任何帮助!
var $currGallery = null;
var handler = function() {
$currGallery = $(this);
$(this).addClass("open-gallery");
//$('.services > li').unbind( "click", handler );
};
$('.services > li').bind("click", handler);
$('.close').click(function(){
//console.log($currGallery);
$currGallery.removeClass("open-gallery");
//$('.services > li').bind( "click", handler );
});
答案 0 :(得分:1)
最有可能(没有看到你的html ).close
元素,也在.sevices > li
元素内。因此,当您单击.close
时,它会正确删除该类,但事件也会冒泡到.sevices > li
,而.close
会重新添加该类。
如果是这种情况,那么在li
处理程序上,您需要停止传播,使其永远不会到达$('.close').click(function(e){
e.stopPropagation();
$currGallery.removeClass("open-gallery");
});
。
ln -s /usr/local/Cellar/graph-tool/2.26_2/lib/python3.6/site-packages/graph_tool /Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages
答案 1 :(得分:1)
根据我对您发布的问题的理解,我建议您使用jquery toggleClass函数。
下面是示例代码和文档的链接。
http://api.jquery.com/toggleclass
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>toggleClass demo</title>
<style>
p {
margin: 4px;
font-size: 16px;
font-weight: bolder;
cursor: pointer;
}
.blue {
color: blue;
}
.highlight {
background: yellow;
}
</style>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<p class="blue">Click to toggle</p>
<script>
$( "p" ).click(function() {
$( this ).toggleClass( "highlight" );
});
</script>
</body>
</html>