Javascript 在Jquery中按类将自定义函数应用于元素

Javascript 在Jquery中按类将自定义函数应用于元素,javascript,jquery,html,css,function,Javascript,Jquery,Html,Css,Function,可能是另一个愚蠢的问题,但我想这是你怎么做的 我有一个功能,其中包括使一个元素可见,然后在舞台上设置动画。我想将其应用于以“.start”类开头的元素,然后应用于整个项目中的其他元素 function showthis() { $(this).show().css({ "display": "block" }).animate({ "top": "40px" }, "fast"); console.log('THIS IS: ' + this); }; $('.start').

可能是另一个愚蠢的问题,但我想这是你怎么做的

我有一个功能,其中包括使一个元素可见,然后在舞台上设置动画。我想将其应用于以“.start”类开头的元素,然后应用于整个项目中的其他元素

function showthis() {
    $(this).show().css({ "display": "block" }).animate({ "top": "40px" }, "fast");
    console.log('THIS IS: ' + this);
};

$('.start').showthis();

如果我使用第一种方法,我会得到一个错误,说“showthis not a function”。通过第二种方式,我在控制台中得到了“THIS IS:[对象窗口]”

我很确定我犯了一个新手错误,所以所有的帮助都将被感激

试着像这样扩展

(function($){
    $.fn.showthis = function() {
         this.show().animate({ "top": "40px" }, "fast");
         return this;//for method chaining - $('.start').showthis().append()...
    };
}(jQuery));
然后您应该能够像
$('.start')那样调用注意,上面的
$(this)
是不需要的,因为
showthis
是具有
show()
的同一对象的一部分,所以
这个
本身就足够了

如果不希望扩展,则必须使用传入选择器或传入jQuery对象本身来修复此问题

function showthis(selector) {
     $(selector).show().animate({ "top": "40px" }, "fast");
};
然后调用showthis('.start')


注意,
.css('display','block')
已被删除,因为它与
.show()相同

a
返回此值在这里会很好,因为方法链接;-)如果没有一个答案有效,或者你仍然面临麻烦,请告诉我,以便我能提供帮助
function showthis(selector) {
     $(selector).show().animate({ "top": "40px" }, "fast");
};
function showthis(obj) {

     $(obj).show().css({ "display" : "block" } ).animate({ "top": "40px" }, "fast");
     console.log('THIS IS: '+ obj);

};

 showthis('.start');