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');
演示
“这” =>此