![](/img/trans.png)
[英]How to disable mouseover event from everywhere using javascript/jquery?
[英]Getting an ID using Javascript and using it for mouseover event
基本上,我想减少必须编写的代码量。 我正在尝试使用Javascript进行翻转,以将图像更改为另一图像,然后在鼠标离开图像后将图像更改回。 现在,这就是我所拥有的:
<a href="#" class="amc"><img src="img/characters/amc_card.png" class="amcIMG" /></a>
$(".amc").mouseenter(function() {
$(".amcIMG").attr('src','img/characters/amc_card2.png');
});
$(".amc").mouseleave(function() {
$(".amcIMG").attr('src','img/characters/amc_card.png');
});
我希望有某种方法可以将“ .amc”存储在变量中,该变量将从翻转中获取该部分,并且可以对多个图像进行存储。 我所有的图像都以类似的方式命名,因此,如果我可以用一个变量替换“ .amc”部分,该变量可以根据图像的变化而变化,因此它只需要编写一个函数即可,而不是超过50个。 !
尝试这个
function(){
var amc= jQuery(".amc", jQuery("#Container"));
jQuery(amc).on("mouseenter", "img", function(e){
$(e.target).attr('src','img/characters/amc_card2.png');
});
jQuery(amc).on("mouseleave", "img", function(e){
$(e.target).attr('src','img/characters/amc_card.png');
});
}();
请记住,每次在jQuery中使用类选择器时,它都会在整个DOM中搜索包含该类的每个元素,这可能会导致性能问题。 您可能会考虑像我一样通过给jQuery一个上下文来缩小其搜索范围。
尝试:
$(".amc").mouseenter(function() {
$(this).find('img').attr('src','img/characters/amc_card2.png');
});
或更完美的方法:
$(".amc").mouseenter(function() {
$(this).children().attr('src','img/characters/amc_card2.png');
});
尝试这个:
function hover(el, on) {
var img = $(el).children('img');
var url = img.attr('src');
var i = url.lastIndexOf('.');
url = on? url.substr(0, i)+'2'+url.substr(i) : url.substr(0, i-1)+url.substr(i);
img.attr('src',url);
}
$(".amc").mouseenter(function() {
hover(this, true);
});
$(".amc").mouseleave(function() {
hover(this, false);
});
为每个img添加一个ID,为每个图片赋予唯一的引用。
<a href="#"><img src="img/characters/amc_card.png" class="amc" id="amc_card" /></a>
$(document).ready(function(){
var amc = $(".amc");
amc.mouseenter(function() {
var id = this.id;
this.src = 'img/characters/'+ id +'2.png';
});
amc.mouseleave(function() {
var id = this.id;
this.src = 'img/characters/'+ id +'.png';
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.