该功能应该更改被单击对象的背景颜色

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();

07-24 09:38