因此,当用户点击div popu时,它会触发hide(),这很好,但是当我点击文本时,它会关闭,但我希望它保持打开状态。
HTML:
<div id="s" class="popu"><img class="tri" src="img/whtri.png"/>
<div class="textb"><center style="font-size:14px;">Item Title</center>
<span style="font-size:12px;">Description this is an item that is very good and i like it very much! I like <a href="f.php">More...</a>
</span>
<span style="">
</span>
</div>
</div>
JAVASCRIPT / JQUERY:
$("body").click(function (e) {
if (!$(e.target).hasClass("popu")) {
$("#s").hide(200)
}
})
请注意,这是一段代码
任何帮助都会很棒!
答案 0 :(得分:1)
不要只检查点击元素上的类,单击元素的任何子元素时它会失败,检查任何父或点击的元素是否有类,哪个可以完成closest()
$("body").click(function (e) {
if (!$(e.target).closest(".popu").length) {
$("#s").hide(200)
}
});
答案 1 :(得分:0)
我跟这个 -
$(".tri").click(function (e) {
if( $(this).parent().hasClass('popu') ){
$("#s").hide(200)
}
})
测试图片上的点击,找出父母是否有合适的班级,然后在适当的时候隐藏。
答案 2 :(得分:0)
如果您希望#s
仅在点击popu div时隐藏,但是当点击popu div中的任何内容时,#s不会隐藏。
尝试删除not
或!
。
$("body").click(function (e) {
if ($(e.target).hasClass("popu")) {
$("#s").hide(200)
}
})