HTML -
<img id="storyimg" src="images/stor.jpg" alt="img" />
<ul class="sb_menu">
<li><a href="linkpage.htm" class="newslink1">Wireless Networking at Fortune Inn, Noida</a></li>
<li><a href="linkpage.htm" class="newslink2">18th International Conference on Oral & Maxillofacial Surgery</a></li>
<li><a href="linkpage.htm" class="newslink3">WiFi deployment at Vellore Institute of Technology</a></li>
</ul>
我希望当用户移动这些li
项时,我想更改图像,如< - p>
<script>
$('a.newslink1').bind('mouseover', function() {
$('img#storyimg').src("images/stor1.jpg");
...same for newslink2 and 3, image will be stor2 and 3
但这不起作用我想我写错了jquery ??????????
答案 0 :(得分:12)
答案 1 :(得分:4)
您的代码:
<script>
$('a.newslink1').bind('mouseover', function() {
$('img#storyimg').src("images/stor1.jpg");
<强>错误:强>
第3行:使用'attr'代替'src',如'.attr(“src”,“images / stor1.jpg”);'
第4行:'}); '在声明结尾处遗漏了
正确的代码:
<script>
$('a.newslink1').bind('mouseover', function() {
$('img#storyimg').attr("src","images/stor1.jpg");
});
如果您想根据您可以编码的链接更改图像:
<img id="storyimg" src="images/stor.jpg" alt="img" />
<ul class="sb_menu">
<li><a href="linkpage.htm" class="newslink1" data-image="stor1.jpg">Wireless Networking at Fortune Inn, Noida</a></li>
<li><a href="linkpage.htm" class="newslink2" data-image="stor2.jpg">18th International Conference on Oral & Maxillofacial Surgery</a></li>
<li><a href="linkpage.htm" class="newslink3" data-image="stor3.jpg">WiFi deployment at Vellore Institute of Technology</a></li>
</ul>
<script>
//binds the mouseover-event-handler to all Links the are childs of an LI in UL with Class "sb_menu"
$('UL.sb_menu LI A').bind('mouseover', function(e) {
$('img#storyimg').attr("src","images/" + $(e.target).attr('data-image'));
});
</script>
一个改进:“img#storyimg”作为选择器是可以的,但只有“#storyimg”更快,因为getElementById(..)是一个本地浏览器函数。如果你使用“img#storyimg”,jquery必须请求getElementsByTagName('IMG')并遍历列表以找到id为“storyimg”的元素。这需要花费大量时间等于直接执行“getElementById”。 页面中任何HTML元素的ID必须是unice。请参阅:http://www.w3.org/TR/html401/struct/global.html#h-7.5.2(“此属性为元素指定名称。此名称在文档中必须是唯一的。”)
答案 2 :(得分:2)
$('a.newslink1').bind('mouseover', function() {
$('img#storyimg').attr("src","images/stor1.jpg");
答案 3 :(得分:1)
您可能需要$('img#storyimg').attr('src','path/to/new/image.jpg');
还有一件事,试验.mouseenter()
和mouseleave()
。
答案 4 :(得分:1)
我知道很久以前问过这个问题,但也许有人可能需要其他一些解决方案。所以我想,也许我也可以帮忙。
您也可以使用“.hover()”函数,可能是这样的:
<head>
和</head>
之间的这个:
<script type="text/javascript">
$(document).ready(function() {
var src_path = "path/images/";
var src_suffix = ".jpg";
$('.yourclass').hover(
function () {
$(this).addClass("hover");
var active_id = $(this).attr('id');
$('#' + active_id + '_pic').attr("src", src_path + active_id + '_big' + src_suffix);
},
function () {
$(this).removeClass("hover");
var active_id = $(this).attr('id');
$('#' + active_id + '_pic').attr("src", src_path + active_id + '_small' + src_suffix);
}
);
});
</script>
<body>
和</body>
之间的这个:
<div class="fruits">
<a href="#" class="yourclass" id="apple">
<img id="apple_pic" src="files/images/apple_small.jpg" alt="apple" title="apple" />
</a>
<!-- -->
<a href="#" class="yourclass" id="pear">
<img id="pear_pic" src="files/images/pear_small.jpg" alt="pear" title="pear" />
</a>
</div>
在我们的某个网站上,它运作良好。
有关“.hover()”功能的更多信息,您可以在此处找到:http://api.jquery.com/hover/