2
  1. 为什么 if (//change b position) part write after (//show a list) part 不能工作,有一些错误?

  2. 我怎样才能使它在 (.a-1).hover, (.b) 不移动并且在上次更改后仍然在同一个地方?+0 不能用?

http://jsfiddle.net/sL8mK/

jQuery

    //change b position
$(".a").hover(function(){
    var newleft = $(".b").position().left + 200;
    $(".b").css('left', newleft + 'px');
},function(){
    var newleft = $(".b").position().left - 200;
    $(".b").css('left', newleft + 'px');
});
$(".a-1").hover(function(){
    var newleft = $(".b").position().left + 0;
    $(".b").css('left', newleft + 'px');
},function(){
    var newleft = $(".b").position().left + 0;
    $(".b").css('left', newleft + 'px');
});

//show a list
$(".a").hover(function(){
    $(".a-1, .a-2").show();
},function(){
    $(".a-1, .a-2").hide();
});
$(".a-1").hover(function(){
    $(".a-1, .a-2").show();
},function(){
    $(".a-1, .a-2").hide();
});
$(".a-2").hover(function(){
    $(".a-1, .a-2").show();
},function(){
    $(".a-1, .a-2").hide();
});

html,css

<div class="a">a</div>
<div class="a-1">a-1</div>
<div class="a-2">a-2</div>
<div class="b">b</div>

.a{
position: absolute;
left: 100px;
top: 150px;
width: 105px;
background: red;
}
.a-1{
position: absolute;
left: 200px;
top: 150px;
width: 100px;
background: maroon;
display: none;
}
.a-2{
position: absolute;
left: 300px;
top: 150px;
width: 100px;
background: olive;
display: none;
}
.b{
position: absolute;
left: 200px;
top: 150px;
width: 100px;
background: blue;
}
4

1 回答 1

1

我已经修改了你的代码 - http://jsfiddle.net/ga5Um/1/ (添加了一个容器 div)

这是适合您的解决方案吗?

于 2012-08-30T16:49:41.143 回答