改变链接崩溃的背景颜色

时间:2017-09-13 10:27:39

标签: javascript jquery

我想更改链接崩溃的背景颜色,但它不起作用。
为什么呢?

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
 <a id="aa" data-toggle="collapse" href="#collapse1" onclick="$(this).css('background-color','#ececec')">
 <div>
 click here
 </div>
 </a>
 

3 个答案:

答案 0 :(得分:1)

为此,a元素需要设置为display: inline-blockdisplay: block

a { display: inline-block; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a id="aa" data-toggle="collapse" href="#collapse1" onclick="$(this).css('background-color', '#ececec')">
  <div>
    click here
  </div>
</a>

话虽这么说,你根本不应该使用on*事件属性。使用不显眼的JS来附加事件处理程序。也应该避免使用css(),这有利于添加样式表中定义的CSS类。试试这个:

$('#aa').click(function() {
  $(this).toggleClass('active');
});
a { display: inline-block; }
a.active { background-color: #ECECEC; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a id="aa" data-toggle="collapse" href="#collapse1">
  <div>
    click here
  </div>
</a>

答案 1 :(得分:0)

在单独的文件中尝试:

$(function(){

  $('a[data-toggle=collapse]').on('click', function() {
    $(this).css('color', 'yellow');
  });

});

答案 2 :(得分:0)

您还需要添加display:block,如下所示

&#13;
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
 <a id="aa" data-toggle="collapse" href="#collapse1" onclick="$(this).css({'background-color':'#ececec', 'display':'block'})">
 <div>
 click here
 </div>
 </a>
&#13;
&#13;
&#13;