多个 DIV 悬停在点击问题上


Multiple DIV hover over with click through issue

我有多个 DIV,每个 DIV 包含一个活动传单。将鼠标悬停后,我想显示事件名称和详细信息,并能够单击事件列表。这适用于第一个列出的事件,但不适用于以下任何事件。我有以下Javascript代码和DIV结构,如下所述。该页面位于 http://midnightguru.com/events_concept.php 以供参考。

<script type="text/javascript">
   $(document).ready(function() {
    $("#event_main").mouseenter(function() {
         $("#event_hover").show();
        }).mouseleave(function() {
         $("#event_hover").hide();
        });
   });
</script>
<div id="event_main"></div><div id="event_hover"></div>

任何帮助不胜感激!我努力寻找,无法弄清楚!

嗯,

首先,ID 属性必须用于标识对象的单个实例。

因此,相反,请为div 元素使用一个类并执行以下操作:

$('.event_main').mouseenter(function(){
        $(this).find('.event_hover').show();
    }).mouseleave(function(){
        $(this).find('.event_hover').hide();
    });
});
<div class='event_main'>
    ... 
    <div class="event_hover" style="display: none;">
        ...
    </div>
</div>

编辑:另外,将该脚本放在$(document).ready上,对于所有页面只有一次,好吗?

GL

它正在处理匹配的第一个项目,因为 jQuery 选择器

$("#event_main")

实际上只匹配您的第一个事件div,即使它们的 id 都为 event_main

# 选择器将仅匹配单个元素:http://api.jquery.com/id-selector/

你需要使用其他一些jQuery选择器来匹配元素,因为所有这些div的id都是event_main。 (也许您的意图是使用 event_main 作为divs 的类,然后使用 .event_main 作为选择器?