我目前在使用鼠标悬停和mouseout功能在jquery中工作时遇到一些问题。我有两个名为'images / doomsday.jpg'的图像,另一个名为'keep_calm.png',当鼠标悬停在它们上面时我想要交换,然后当它没有时换回。我已经包含了我目前正在尝试使用的代码,任何人都可以看到它的任何问题以及我哪里出错了?
$(function() {
$("images/doomsday.jpg")
.mouseover(function() {
var src = $(this).attr("src").match(/[^\.]+/) + "images/keep_calm.png";
$(this).attr("src", src);
})
.mouseout(function() {
var src = $(this).attr("src").replace("images/keep_calm.png");
$(this).attr("src", src);
});
});
答案 0 :(得分:7)
您的选择器错了。您可以了解选择器here。
这是图片交换的demo。
代码:
$('document').ready(function() {
$('img').on({
'mouseover' : function() {
$(this).attr('src','http://media02.hongkiat.com/css3-code-slim/css3-markup.jpg');
},
mouseout : function() {
$(this).attr('src','http://www.w3.org/html/logo/downloads/HTML5_Logo_512.png');
}
});
});
答案 1 :(得分:1)
可能是这样的 DEMO :http://jsfiddle.net/m4WuU/只使用Jquery toggleClass
HTML
<div class="holder"><div>
CSS:
.holder {
background-image:url('images/keep_calm.png');
}
.swapHolder {
background-image:url('images/doomsday.png');
}
JS:
$('.holder').on('hover', function () {
$('.holder').toggleClass('swapHolder');
});
答案 2 :(得分:1)
没有使用选择器。这是你的最终代码应该是什么样子
HTML
<div> <img src="images/doomsday.jpg" id='myimage' /> </div>
Javascript
$('document').ready(function() {
$(function() {
$("#myimage")
.mouseover(function() {
var src = $(this).attr("src").match(/[^\.]+/) + "images/keep_calm.png";
$(this).attr("src", src);
})
.mouseout(function() {
var src = $(this).attr("src").replace("images/keep_calm.png");
$(this).attr("src", src);
});
});
});
答案 3 :(得分:0)
显然选择器错了:
您应该使用例如$("#imageid")
,其中image id是您要更改的图像的ID。