jquery addClass()不能与event.target一起使用

时间:2014-04-22 05:32:17

标签: jquery events target addclass

请帮忙。

为什么jquery addClass()无法使用event.target? 我已经创建了一个代码,它应该在单击时在目标上添加类,但它不起作用,并且它说,e.target.addClass不是函数。

http://jsfiddle.net/Lq9G4/

CODE:

<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Class Test</title>
    <script src="http://code.jquery.com/jquery-1.11.0.min.js"></script>
    <style>
        .big {
            font-size: 5em;
        }
        .small {
            font-size: 1em;
        }
    </style>

</head>
<body>
    <p>This is the text</p>
    <script>
        $(function() {
            $("p").click(function(e) {  
                      $("a").removeClass("big").addClass("small");
                      $("this").addClass("big"); //This doesn't work
                      e.target.addClass("big"); //nor this one                
                    });
        });

    </script>
</body>
</html>

7 个答案:

答案 0 :(得分:29)

基本上e.target将是javascript对象,您必须先将其转换为Jquery对象,然后才能使用.addClass()等函数

尝试,

$(e.target).addClass("big"); 

同时,$("this").addClass("big");此代码无效,因为您将this作为字符串传递。 this也是一个javascript对象,您需要将其转换为jquery对象,如$(this)

答案 1 :(得分:2)

由于.addClass()是一个jQuery方法,你需要一个jQuery对象,所以将e.target转换为jQuery对象,方法是将它包装在$中:

$(e.target).addClass("big"); 

除此之外,另一种解决方案是使用$(this)。你不需要在this内包裹" "

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

<强> Updated Fiddle

答案 2 :(得分:2)

您有两个问题:

$(this).addClass("big"); //Unquote to "this"
$(e.target).addClass("big"); // select e.target with $() wrapper.

答案 3 :(得分:1)

更改此行

$("this").addClass("big"); //This doesn't work

$(this).addClass("big"); //This will work work

如果您需要event本身,那么您可以使用

$(e.target).addClass('big');

答案 4 :(得分:0)

试试这个:

 $(e.target).addClass('big');

<强> Demo

答案 5 :(得分:0)

<script>
    $(function() {
        $("p").click(function(e) {
                  $("a").removeClass("big").addClass("small");
                  $(this).addClass("big"); //This doesn't work               
                });
    });

</script>

“this”=&gt;这个

答案 6 :(得分:0)

    e.currentTarget.classList.add("loading_arrow");
  

您可以使用上面的代码通过js鼠标事件来添加loading_arrow类。