为了账号安全,请及时绑定邮箱和手机立即绑定

请问如何实现鼠标移到li上改变另一个div的样式

请问如何实现鼠标移到li上改变另一个div的样式

qq_见过雪_0 2016-05-06 11:14:06
<body><div id=wrap><div class=map>         <div class=A0>                <ul>                         <li class=B1><a href=#>嘟嘟噜</a></li>                         <li class=B2>...............................................</li>                 </ul>          </div>          <div class=A1><a href=#>阿卡琳</a></div>          <div class=A2>..............................................</div></div></body>备注:B1和A1本身有css的link,visited和hover样式。可能会有优先级的问题请问鼠标移过“嘟嘟噜”的时候改变“阿卡琳”的样式该如何实现追加提问:因为A1和B1是一一对应的。如果能有一个函数直接让Bx影响Ax这种最好了谢谢大神
查看完整描述

7 回答

已采纳
?
闹小志

TA贡献75条经验 获得超42个赞

这类问题我知道的有两种办法:

1、根据索引,比如你点击了第几个li,第几个div样式就要变化这样。这个方法有缺陷,就是你的位置必须是一一对应的,顺序不能乱,相比下,第二种办法就更灵活了。

2、就是设置一个关联的东西,把他们联系在一起。比如你的li是同级的,你就给class设置成了A某(例A1,A2,A3...),div是受控制的一方,你就给class设置成了B某(例B1,B2,B3...),然后给每个li都设置一个data-flag。比如:

<li class="B1" data-flag="1"><a href=#>嘟嘟噜</a></li>
<li class="B2" data-flag="2">...............................................</li>

然后点击哪个li,你就获取到当前的li的data-flag值和A拼上个字符串,用jquery表示就是:

$("li").click(function(){
    $(".A"+$(this).data("flag")).css(你要改变的样式属性);
});

总结:问题不是你是不是必须设置成某1 某2 某3这种形式 你也可以设置成如下形式:

<div class=A0>
    <ul>
       <li class=“B1” data-r="a"><a href=#>嘟嘟噜</a></li>
        <li class=“B2” data-r="b">...............................................</li>
    </ul>
</div>
<div class=“menu-a”><a href=#>阿卡琳</a></div>
<div class=“menu-b”>..............................................</div>
$("li").click(function(){
    $(".menu-"+$(this). ("r")).css(你要改变的样式属性);
});

总之,思想了解了,怎么写就是你自己的事儿了,反正是有这么个办法,我一般都是这样用~

查看完整回答
2 反对 回复 2016-05-06
  • qq_见过雪_0
    qq_见过雪_0
    这个思路不错!学习到了.不过我设置的hover事件鼠标滑过改变样式执行了.鼠标移出样式却没执行,加了alert,移除时alert执行了...为什么
  • qq_见过雪_0
    qq_见过雪_0
    http://www.imooc.com/wenda/detail/316216 具体问题请看这里,麻烦了
  • qq_见过雪_0
    qq_见过雪_0
    其他问题自己已经解决了.不过这个data-flag的想法帮助我很多,就采纳你的了 虽然第二种设置没成功,回头多试试
?
weibo_哆啦A梦有大口袋_0

TA贡献107条经验 获得超146个赞

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>测试</title>

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

<style type="text/css">

li{list-style: none;}

a{text-decoration: none;color: #000;}

.B li.cursor{background: red;}

</style>

</head>

<body>

<ul>

<li><a href="JavaScript:;">嘟嘟噜</a></li>

<li><a href="JavaScript:;">哈哈哈</a></li>

</ul>

<ul>

<li><a href="JavaScript:;">阿卡林</a></li>

<li><a href="JavaScript:;">末日使者</a></li>

</ul>

</body>

<script type="text/javascript">

$(function(){

$(".A li").mouseenter(function(){

var index=$(this).index();

$(".B li").eq(index).addClass('cursor').siblings().removeClass("cursor");

})

$(".A li").mouseleave(function(){

$(".B li").removeClass('cursor');

})

})

</script>

</html>


查看完整回答
2 反对 回复 2016-05-06
  • qq_见过雪_0
    qq_见过雪_0
    试了一下.不知道为什么一点反应没有 $(document).ready(function(){ $(".B1").hover(function(){ $(".A1").removeClass('A1 a:link').addClass('sf'); },function(){ alert("啊啊啊啊啊"); $(".A1").addClass('A1 a:link').removeClass('sf'); }); }); 这是我写的,但是只有鼠标移入执行了,替换成了样式sf. 但是鼠标移开之后的样式换回没有执行,alert却执行了....请问是为什么呢
  • qq_见过雪_0
    qq_见过雪_0
    为什么没有排版?..呃,不知道这样能看清么
  • qq_见过雪_0
    qq_见过雪_0
    http://www.imooc.com/wenda/detail/316216 没有找到排版按钮.请移步新问题.谢谢了
点击展开后面1
?
潭风灬

TA贡献1条经验 获得超0个赞

可以将Ax对应的div放在Bx的li里面,再设置样式
查看完整回答
反对 回复 2017-08-07
?
weibo_哆啦A梦有大口袋_0

TA贡献107条经验 获得超146个赞

<!DOCTYPE html>

<html>

<head>

<meta charset="UTF-8">

<title>测试</title>

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

    <style type="text/css">

    li{list-style: none;}

    a{text-decoration: none;color: #000;}

    .B li.cursor{background: red;}

    .A li{float: left;height: 30px;margin: 0 10px;}

    .B li{float: left;height: 30px;margin: 0 10px;}

    </style>

</head>

<body>

<ul class="A">

    <li><a href="JavaScript:;">嘟嘟噜</a></li>

    <li><a href="JavaScript:;">哈哈哈</a></li>

    <li><a href="JavaScript:;">移入3</a></li>

    <li><a href="JavaScript:;">移入4</a></li>

    <div style="clear:both;"></div>

</ul>

<ul class="B">

    <li><a href="JavaScript:;">阿卡林</a></li>

    <li><a href="JavaScript:;">末日使者</a></li>

    <li><a href="JavaScript:;">变化3</a></li>

    <li><a href="JavaScript:;">变化4</a></li>

    <div style="clear:both;"></div>

</ul>

</body>

<script type="text/javascript">

$(function(){

    $(".A li").mouseenter(function(){

    var index=$(this).index();

    $(".B li").eq(index).addClass('cursor').siblings().removeClass("cursor");

    })

    $(".A li").mouseleave(function(){

    $(".B li").removeClass('cursor');

    })

})

</script>

</html>


查看完整回答
反对 回复 2016-05-09
?
weibo_哆啦A梦有大口袋_0

TA贡献107条经验 获得超146个赞

不懂问我

查看完整回答
反对 回复 2016-05-06
  • 7 回答
  • 0 关注
  • 9846 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信