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

用Hover来绑定元素事件时,如果要写的样式很多。先把样式写在样式表再用attr()方法读取类名。为什么现在反而没反应了?是哪出了问题

    <style>

    .bjcolor{ background: #fff;}

    </style>

<body>

    <h2>.hover()方法</h2>

    <div class="left">

        <div class="aaron1">

            <p>触发hover事件</p>

        </div>

    </div>

    <script type="text/javascript">


    // hover()方法是同时绑定 mouseenter和 mouseleave事件。

    // 我们可以用它来简单地应用在 鼠标在元素上行为

    $("p").hover(

        function() {

            $(this).css("background", 'red');

        },

        function() {

            $(this).attr("bjcolor");

        }

    );



    </script>

</body>

换成.addClass()获取也不行

_______________________________________________________________________________________________________________________

是不是要结合removeClass()才行?

    $('p').hover(

        function(){

            $(this).addClass("add");

        },

        

        function(){

             $(this).removeClass("add");

        }

        )



正在回答

6 回答

$(selector).attr(attribute)

attribute    规定要获取其值的属性。    

0 回复 有任何疑惑可以回复我~

你这样设置是不对的,颜色不会变  因为权重不一样,一个是行间样式,一个是class属性,class属性是不可能覆盖行间样式的,你要是想和例子里面一样的效果你就要把 $(this).css("background", 'red')后面加;$(this).attr("class","");

0 回复 有任何疑惑可以回复我~

纠正一下,.css可以动态修改样式,而addClass只能静态修改样式,而$(this)是动态选择器,所以这里这能用css动态修改样式。

1 回复 有任何疑惑可以回复我~

$(this).addClass('bjcolor');就可以了

0 回复 有任何疑惑可以回复我~

这样子好像还是不行啊

0 回复 有任何疑惑可以回复我~

 $(this).attr("class","bjcolor");

0 回复 有任何疑惑可以回复我~
#1

淡水狗 提问者

原来是这样写啊。谢谢了
2017-07-20 回复 有任何疑惑可以回复我~
#2

Mr_Jp黎 回复 淡水狗 提问者

你不是点了最佳答案吗。。我以为你知道,我也是看了最佳回答才记起来的
2017-07-20 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

用Hover来绑定元素事件时,如果要写的样式很多。先把样式写在样式表再用attr()方法读取类名。为什么现在反而没反应了?是哪出了问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信