在Jquery中创建函数

时间:2012-03-19 15:41:03

标签: jquery

我正在使用Jquery创建一些函数。 但是我遇到了问题。

function fader(elm,delaytime) {
    elm.each(function(index){
        $(this).css('visibility','visible').delay(delaytime*index);
        $(this).fadeIn(1500);
    });
}
fader($('.subImgs').children(),200);

很好,我想要更多。

$.fn.fader2 = function(elm,delaytime) {
    elm.each(function(index){
        $(this).css('visibility','visible').delay(delaytime*index);
        $(this).fadeIn(1500);
    });
}

$('.subImgs').children().fader2(200);

它不起作用。我知道有些不同但我找不到。 有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:2)

你的功能应该是:

$.fn.fader2 = function(delaytime) {
    return this.each(function(index){
        $(this).css('visibility','visible').delay(delaytime*index).fadeIn(1500);
    });
}

工作小提琴(略微不同的代码以提高可见度):http://jsfiddle.net/2HMWF/

请参阅上述评论中的链接,以获取有关该主题的重要信息:http://docs.jquery.com/Plugins/Authoring

答案 1 :(得分:1)

您也可以尝试:

(function($) {
    if (!$.myFader) {
        $.extend({
            myFader: function(elm, delaytime) {
                return elm.each(function(index){
                    $(this).css('visibility','visible').delay(delaytime*index).fadeIn(1500);
                });
            }
        });
        $.fn.extend({
            myFader: function(delaytime) {
                return $.myFader($(this), delaytime);
            }
        });
    }
})(jQuery);

这应该允许两者

$.myFader($('.subImgs').children(),200);

$('.subImgs').children().myFader(200);