jquery addClass()不使用event.target

请帮忙。

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

http://jsfiddle.net/Lq9G4/

码:

    Class Test   .big { font-size: 5em; } .small { font-size: 1em; }    

This is the text

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

基本上e.target将是一个javascript对象,你必须在使用它的函数之前将它转换为Jquery对象,如.addClass()

尝试,

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

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

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

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

除此之外,另一个解决方案是使用$(this) 。 你不需要把它包在里面" "

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

更新小提琴

你有两个问题:

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

改变这一行

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

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

而且如果你需要它与event本身,那么你可以使用

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

试试这个:

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

演示

  

“这” =>此