我希望单击它时文本的颜色会发生变化。这是我现在正在使用的代码:
$(document).ready(function() {
$("#colorChanger p").click(function() {
$(this).changeColor();
});
function changeColor() {
$(this).css("color", "white");
};
})
我也有这段代码on JSFiddle。我的代码出了什么问题?
答案 0 :(得分:3)
更新了小提琴:http://jsfiddle.net/xME2L/5/
如果你想添加一个函数,你可以在从$()返回的任何内容上调用它,你必须使用:
$.fn.functionName = function() {}
答案 1 :(得分:0)
这是my solution。您没有正确地将对象传递给changeColor函数。我还建议在document.ready函数之外声明changeColor。
答案 2 :(得分:0)
从未将更改颜色函数分配给jquery el对象。
agmcleod解决方案的替代方案是:
$(document).ready(function(){
$("#colorChanger p").click(function(){
changeColor($(this));
});
function changeColor(el){
el.css("color","white");
};
});
答案 3 :(得分:0)
作为agmcleod's solution的替代方案,您可以通过这种方式拨打changeColor
(无需更改changeColor
):
changeColor.call(this);
演示更改here。
答案 4 :(得分:0)
如果要将其称为$(this).changeColor();则应将changeColor定义为JQuery插件。 :
$(document).ready(function(){
$("#colorChanger p").click(function(){
$(this).changeColor();
});
$.fn.changeColor = function() {
this.css("color","white");
};
})