点击时更改div的ID

时间:2013-02-23 13:32:32

标签: javascript css

如何向div添加onClick侦听器。 如果div之前处于非活动状态,我想将div的名称更改为divclass active&如果用户再次单击列表,则删除“活动”一词。 我不知道该怎么做。 这是我到目前为止所尝试的

<script>

$function tog(){
$(this).toggleClass('active');
return false;
}



$(function() {

var dd = new DropDown( $('#dd') );

$(document).click(function() {
    // all dropdowns
    $('.wrapper-dropdown-4').removeClass('active');
});

});
</script>

其中我要更改其类名的div定义如下

<div id="dd" onclick="tog()" class="wrapper-dropdown-4">
  <!--something-->
  </div>

我试过了..

<html>
<head>
<script>
$('#dd').on('click', function(){
$(this).toggleClass('active')
});
</script>

<style>
.active {
color: red;
}
</style>
</head>
<body>

<div id="dd" class="wrapper-dropdown-4">
ddddd
</div>

</body>
</html>

现在这有什么问题?

我正在通过chrome developer的工具&amp;检查元素id。我没有看到使用此代码的任何更改。那么,有人可以帮忙吗? 谢谢。 :)

2 个答案:

答案 0 :(得分:2)

您需要的唯一脚本是

$(function(){
    $('#dd').on('click', function(){
        $(this).toggleClass('active')
    });
});

演示:Fiddle

答案 1 :(得分:0)

你必须传递对象$(this)无法识别,使用tog(this)

  <script>
     function tog(obj)
     {
        $(obj).toggleClass('active');
        return false;
     }



 $(function() {

 var dd = new DropDown( $('#dd') );

 $(document).click(function() {
 // all dropdowns
 $('.wrapper-dropdown-4').removeClass('active');
 });

 });
 </script>

 <div id="dd" onclick="tog(this)" class="wrapper-dropdown-4">
   <!--something-->
 </div>

不是最好的方法,您可以通过在事件中注册点击来绑定事件。