该功能应该更改被单击对象的背景颜色
function colorMe(){
$(this).css('background-color', 'red');
}
我这样称呼它
$('.colorme').click(colorMe);
它改变了这个div的背景
<div class="colorme">Color Me</div>
问题是我想在运行colorMe之前做其他事情。所以我不能只使用
$('.colorme').click(colorMe);
。我想做的是这样的$('.colorme').click(function(){
alert('something happens first, then colorMe is called');
colorMe(); //I call colorMe here..
$(this).colorMe(); //I also tried this, but it's not working
});
但这不会影响div。我认为它失去了对div的影响。我需要通过它吗?
最佳答案
function colorMe(elt){
$(elt).css('background-color', 'red');
}
$('.colorme').click(function(){
alert('something happens first, then colorMe is called');
colorMe(this); //I call colorMe here..
});
像这里一样在jQuery对象上调用函数
$(this).colorMe()
您将必须构建一个插件(我对其进行了编辑以添加一个类)
// css
.red {
background: red;
}
// js
(function($) {
$.fn.extend({
colorMe: function() {
this.addClass("red");
},
unColorMe: function() {
this.removeClass("red");
}
});
})(jQuery);
那你就可以做
$(".a_class").colorMe();
$(".a_class").unColorMe();