我一直在搜索但是空白,我想知道我是否可以使用一个jQuery语句来定位页面上的多个元素.我在页面上有几个相同的按钮,它们每个都由左,中,右背景组成,中间包含文本,可以扩展到任何必要的大小.每个都有一个唯一的Id和/或类.我现在设置它,以便当你将鼠标悬停在它们的容器div上时,3个背景会改变,以显示按钮处于不同状态的外观.它现在完成的方式是对每个按钮进行1次悬停调用,该按钮由Class定位(宁可使用ID,但不能有多个具有相同ID的元素).这个悬停之后是8个事件.每个右侧和中间的背景更改以及中间文本的颜色更改.
这意味着许多代码行.我想要的是能够使用悬停事件一次调用所有按钮,或者让悬停事件以某种方式知道哪个按钮正在悬停,并抛出该类或id甚至命名回jQuery然后可以更改右侧左侧和中间的按钮子类.右侧和中间的子类在所有按钮上是相同的,所以如果悬停事件可以集中在任何称为它的事件上,我只需要一组调用来更改背景属性...当前代码低于两个按钮......
$j(".learnMoreButton").hover(
function () {
$j('.learnMoreButton .buttonLeft').css({background:"url(/images/concaveBtn-Left2.gif)"});
$j('.learnMoreButton .buttonMiddle').css("background-image", "url(/images/concaveBtn-Middle2.gif)");
$j('.learnMoreButton .buttonMiddle a').css({color:"#ffffff"});
$j('.learnMoreButton .buttonRight').css({background:"url(/images/concaveBtn-Right2.gif)"});
},
function () {
$j('.learnMoreButton .buttonLeft').css({background:"url(/images/concaveBtn-Left.gif)"});
$j('.learnMoreButton .buttonMiddle').css("background-image", "url(/images/concaveBtn-Middle.gif)");
$j('.learnMoreButton .buttonMiddle a').css("color", "#666");
$j('.learnMoreButton .buttonRight').css({background:"url(/images/concaveBtn-Right.gif)"});
}
);
$j(".bioButton").hover(
function () {
$j('.bioButton .buttonLeft').css({background:"url(/images/concaveBtn-Left2.gif)"});
$j('.bioButton .buttonMiddle').css("background-image", "url(/images/concaveBtn-Middle2.gif)");
$j('.bioButton .buttonMiddle a').css({color:"#ffffff"});
$j('.bioButton .buttonRight').css({background:"url(/images/concaveBtn-Right2.gif)"});
},
function () {
$j('.bioButton .buttonLeft').css({background:"url(/images/concaveBtn-Left.gif)"});
$j('.bioButton .buttonMiddle').css("background-image", "url(/images/concaveBtn-Middle.gif)");
$j('.bioButton .buttonMiddle a').css("color", "#666");
$j('.bioButton .buttonRight').css({background:"url(/images/concaveBtn-Right.gif)"});
}
);
Run Code Online (Sandbox Code Playgroud)
cle*_*tus 34
你可以做:
$(".learnMoreButton, .bioButton").hover(function() {
$(this).find(".buttonRight")...
...
}, function() {
...
});
Run Code Online (Sandbox Code Playgroud)
我想补充一点,我认为你最好用CSS类做这件事.
.buttonLeft { background: url(/images/concaveBtn-Left.gif) }
.buttonMiddle { background-image: url(/images/concaveBtn-Middle.gif) }
.buttonMiddle a { color: #666; }
.buttonRight { url(/images/concaveBtn-Right.gif) }
.hoverover .buttonLeft { url(/images/concaveBtn-Left2.gif) }
.hoverover .buttonMiddle { url(/images/concaveBtn-Middle2.gif) }
.hoverover .buttonMiddle a { color: #FFF; }
.hoverover .buttonRight { background: url(/images/concaveBtn-Right2.gif) }
Run Code Online (Sandbox Code Playgroud)
和
$(".learnMoreButton, .bioButton").hover(function() {
$(this).addClass("hoverover");
}, function() {
$(this).removeClass("hoverover");
});
Run Code Online (Sandbox Code Playgroud)
你会有更多的代码.
你也可以给元素赋予多个类:
<div class="bioButton hoverbutton">
...
</div>
<div class="learnMoreButton hoverbutton">
...
</div>
Run Code Online (Sandbox Code Playgroud)
然后它变得更简单:
$(".hoverbutton").hover(function() {
$(this).addClass("hoverover");
}, function() {
$(this).removeClass("hoverover");
});
Run Code Online (Sandbox Code Playgroud)