0

我想一次悬停 3 个项目。当我将光标放在其中之一时。它应该悬停在其他两个项目上。请任何人都可以帮助我。我想用 javascript 做到这一点。我做了一个模型,但它不是很好。我想使用功能,所以我可以一次又一次地使用它。请帮我。

<!DOCTYPE html>
<html>
<head>

  <script type="text/javascript" src="jquery.js"></script>

<style type="text/css">
.boxes {
    float: left;
    display: inline;
    width:150px;
    height:100px
}
.box1 {
    width:50px;
    padding:10px;
    border:1px solid gray;
    margin:0px;
    height: 20px;
}

.box4 {
    display: inline-block;
    width:150px;
    padding:10px;
    border:1px solid gray;
    height: 100px;
}


</style>
<script>
$(document).ready(function(){
    // box 1
    $('.box1').mouseover(function(){
        $('.box1').css('background-color', '#F7FE2E');
        $('.box4').css('background-color', '#F7FE2E');
        $('.hov').css('color', '#0f0');

    });
    $('.box1').mouseout(function(){
        $('.box1').css('background-color', '#FFF');
        $('.box4').css('background-color', '#FFF');
        $('.hov').css('color', '#fff');

    });
       $('.box4').mouseover(function(){
        $('.box4').css('background-color', '#F7FE2E');
        $('.box1').css('background-color', '#F7FE2E');
        $('.hov').css('color', '#0f0');

    });
    $('.box4').mouseout(function(){
        $('.box4').css('background-color', '#FFF');
        $('.box1').css('background-color', '#FFF');
        $('.hov').css('color', '#fff');

    });

});

</script>
</head>

<div class="boxes">
    <div class="box1">Box 1</div>

</div>
<div class="box4"><a href="#" class="hov">box4</a> </div>
<br/>
<div class="boxes">
    <div class="box1">Box 1</div>

</div>
<div class="box4"><a href="#" class="hov">box4</a> </div>

</body>
</html>
4

2 回答 2

2

如果您按父 div 对 div 进行分组,则可以使用 HTML 结构来确定要突出显示的内容。我不知道您的确切使用模型,但类似这样:

<div class="boxgroup">
    <div class="box1 hover"></div>
    <div class="box2 hover"><a href="mylink" class="hov">Link</a></div>
</div>

<div class="boxgroup">
    <div class="box1 hover"></div>
    <div class="box2 hover"><a href="mylink" class="hov">Link</a></div>
</div>

然后在你的 jQuery 中:

$(document).on('mouseover', '.hover', function () {
    var boxgroup = $(this).closest('.boxgroup');
    boxgroup.find('.hover').addClass('hovercolor');
    boxgroup.find('.hov').css('color', '#0f0');
}).on('mouseout', '.hover', function () {
    var boxgroup = $(this).closest('.boxgroup');
    boxgroup.find('.hover').removeClass('hovercolor');
    boxgroup.find('.hov').css('color', '#000');
});

在这里,我.closest()用来查找它所在的组div,然后突出显示.hover该组中的所有其他项目。

例子:

http://jsfiddle.net/jtbowden/HZtVP/3/

如果您希望您的 div 不被物理分组,还有其他方法可以做您想做的事情。

于 2013-01-29T17:19:46.040 回答
0
  1. 使用映射 javascript 对象。

  2. 并使用类'like'选择器将函数绑定到类以“.box”开头的元素

例如:

$(document).ready(function(){
    var mapping = { 'box1':'box4','box4':'box1' };

    $("[class^=box]").mouseover(function(){
       .........

    });
于 2013-01-29T09:21:10.963 回答