好的 .. 看看 Shaz 的回答!认为他是对的。我的正在穿上$('.web'),假设它是$('#navweb')的孩子
您在这里所做的是在$("#navweb") 上创建hover 函数,但将这些函数放在$(".web") 的each 函数上:
$j('#navweb').hover(function() {
$j(".web").each(function() {
var i = parseInt(this.id.substr(2));
$j(this).css('background-image', 'url(back/' + i + 'col.png)').fadeTo('100', 1);
},function() {
$j(this).css('background-image', 'url(back/' + i + '.png)').fadeTo('100', 0.4);
});
});
hover 时不需要每次都抛出 jQuery 对象 $(".web") 中的每个 HTMLElement
$j(".web").hover(function() {
var i = parseInt(this.id.substr(2));
$j(this).css('background-image', 'url(back/' + i + 'col.png)').fadeTo('100', 1);
},function() {
var i = parseInt(this.id.substr(2));
$j(this).css('background-image', 'url(back/' + i + '.png)').fadeTo('100', 0.4);
});
});
如果$(".web") 是$("#navweb") 的孩子,请这样做:
$("#navweb .web").hover(...
仅作记录:hover 添加到事件 mouseenter 和 mouseleave 这些是特殊的 jQuery 事件。因此有一个辅助函数可以这样做:
$(element).bind("mouseenter mouseleave", function(event) {
if ( event.type == "mouseenter" ) {
// calls first function
} else {
// calls second function
}
});
您也可以使用 hover 只附加一个函数:
$(element).hover(function(event){
if ( event.type == "mouseenter" ) {
// do this
} else {
// do that
}
});
对不起,我有点累了,希望你能理解!
安德烈亚斯