【发布时间】:2012-04-22 13:48:43
【问题描述】:
第一篇文章在这里。我的代码如下。我在这里拥有的基本上是一个导航菜单 (#nav) 和一个徽标 (#logo)。当悬停在#nav 元素上时,当悬停在不同的导航项上时,我使用了 data-href 和图像链接来交换 #logo 图像。例如,将鼠标悬停在“蓝色”上,徽标会转到蓝色图像。但是,在悬停时,下面的代码只会停留在最后一个查看的图像上。悬停时有没有办法让它恢复到原来的状态?
HTML:
<ul id="nav">
<li data-href="<?php bloginfo('template_url'); ?>/images/logo-marketing.png" class="nav1"><a href="<?php bloginfo('url'); ?>/marketing">Marketing</a></li>
<li data-href="<?php bloginfo('template_url'); ?>/images/logo-consultancy.png" class="nav2"><a href="<?php bloginfo('url'); ?>/consultancy">Consultancy</a></li>
<li data-href="<?php bloginfo('template_url'); ?>/images/logo-project-management.png" class="nav3"><a href="<?php bloginfo('url'); ?>/project-management">Project Management</a></li>
<li data-href="<?php bloginfo('template_url'); ?>/images/logo-production-engineering.png" class="nav4"><a href="<?php bloginfo('url'); ?>/production-engineering">Production & Engineering</a></li>
<li data-href="<?php bloginfo('template_url'); ?>/images/logo-innovation.png" class="nav5"><a href="<?php bloginfo('url'); ?>/innovation">Innovation</a></li>
</ul>
Javascript:
$(window).load(function(){
var nav = $('#nav')[0];
var output = $('#logo')[0];
$(nav).on('hover', 'li', function() {
$(this).stop().addClass('selected').siblings().removeClass('selected');
var url = $(this).stop().data('href');
$(logo).html('<img src="' + url + '">');
});
});
【问题讨论】:
-
您是否误错过了#nav? $('#nav').on('hover', 'li', function() {
-
尝试将 nav 替换为 "#nav" 并删除 var nav = $('#nav')[0],不使用 var 输出并且您有未定义的 logo 变量(应该将 logo 替换为输出?)
-
您的 php 与 jQuery 无关。我们需要查看 HTML,而不是服务器端脚本。
标签: javascript jquery