请参阅演示here。
我有几个div.story-in-myworks
在每个div.story-in-myworks
内,有div.pageimage-div-overlay
控制每个div.story-in-myworks
的叠加层。
在每个div.pageimage-div-overlay
内,a.btn-storysetting
负责隐藏和显示div.storysettings_talkbubble_left
。
a.btn-storysetting
和div.storysettings_talkbubble_left
都是div.pageimage-div-overlay
的子元素。
这是一个片段:
<div class="img-holder story-in-myworks " rel="91" style="background: url('img/01d-0.jpg?1353745136') no-repeat; background-size: cover; border: 1px solid #DCDDDE">
<div class="pageimage-div-overlay">
<a class="btn-storysetting" href="#"><span></span></a>
<div class="storysettings_talkbubble_left settings-bubble border-radius-5 hidden talkbubble-padding">
基本问题是当我点击div.story-in-myworks或div.pageimage-div-overlay时我想要一个不同的行为,它不会影响a.btn-storysetting
的点击事件处理程序
div.story-in-myworks
时,覆盖显示在div
(已完成) div.story-in-myworks
时,图像(btn-storysetting12x12.png
)会出现在右上角(已完成) btn-storysetting12x12.png
时,图像旁边会出现气泡。的(完成) div.story-in-myworks
会继续显示叠加外观(已完成) div.story-in-myworks
恢复正常,不会覆盖(已完成) div.story-in-myworks
的覆盖图仍然存在。的(完成) div.story-in-myworks
打开气泡,然后光标打开另一个btn-storysetting12x12.png
div.story-in-myworks
时,前一个气泡消失,相应的叠加层被隐藏,但当前选中的{{} 1}}现在有了叠加层,并且当前所选的div
(已完成) div
,例如,导航到其他网页。请注意,标有(已完成)的标签已完成。请参阅演示here。
我试图做到8但规则2-7会立即被打破。
一种在不破坏任何其他条件的情况下满足所有8项要求的方法。
没有。我做了一个简化的测试用例,我删除了尽可能多的不必要的代码来解释我的问题,而不会影响问题陈述。
您可以通过注意演示中的谈话气泡内的链接没有样式来判断。
答案 0 :(得分:2)
以下链接描述了如何识别点击事件的来源并相应地执行。
这段代码似乎有用,但我还没有找到为什么它在第一次加载时会触发两次。
$(".story-in-myworks").mouseenter(function(e){
var currentStory = $(this);
$(this).click(function(e){
if ($(e.target).hasClass('pageimage-div-overlay'))
alert('test');
if ($(e.target).hasClass('btn-storysetting')){
alert('test2');
}
});
});