【发布时间】:2013-10-30 22:17:31
【问题描述】:
我有一个带有 PNG 图标的菜单。我希望当用户悬停菜单项时,PNG 图标更改为 GIF 图标。我试过这个: jsFiddle
$("#image").mouseenter(function(){
// I can set GIF url here
$(this).attr("src","http://jsfiddle.net/img/logo.png");
});
$("#image").mouseleave(function(){
$(this).attr("src","http://jsfiddle.net/img/logo-white.png");
});
但我知道这不是正确的方法。我不能对每个菜单项都这样做。 这是我的 HTML:
<ul>
<li>
<a> item 1
<img src="image-path" />
</a>
</li>
<li>
<a> item 2
<img src="image-path" />
</a>
</li>
</ul>
我关注了this question,但这不是我想要的。我想在路径中的最后一个. 或最后一个/ 上拆分。
此代码在每个 / 字符上拆分字符串:
var data =$("#image").attr("src");
var array = data.split('/');
问题:
我有这个图像路径:../images/icon1.png,我想将其更改为这些路径:
../images/icon1.gif 或 ../images/hover/icon1.gif
【问题讨论】:
-
最好使用 CSS 和 sprites。 JS 是矫枉过正,实际上提供了更差的用户体验(图像闪烁作为辅助加载)
-
我有很多菜单项和每个菜单项的特殊图标。
-
或者你可以使用一个简单的 javascript
replace. -
即使我有 10,000 个菜单项都带有图像和图标,我仍然会使用 CSS。如果您还要添加如此多的事件处理程序,则会降低性能。如果您发现手动操作过多,请使用脚本生成所需的 CSS。
-
那么
$(this).attr("src", $(this).attr("src").replace('.png', '.gif'));
标签: javascript jquery html css split