与jQuery兼容的JavaScript插件

与jQuery兼容的JavaScript插件,javascript,jquery,plugins,Javascript,Jquery,Plugins,我计划写一个JavaScript插件。我希望它能够利用jQuery的特性,但如果页面上没有jQuery,它也会优雅地降级 例如,对于幻灯片,jQuery用户会调用: $("#Placeholder").Slideshow(); 普通JavaScript页面仍然可以使用它,只是功能较少(例如没有动画),或者只在某些浏览器中使用: Slideshow(Placeholder); 我对如何实现这一点的示例、最佳实践和教程很感兴趣。我还没有编写任何非jquery插件,但如果您希望插件在没有jquer

我计划写一个JavaScript插件。我希望它能够利用jQuery的特性,但如果页面上没有jQuery,它也会优雅地降级

例如,对于幻灯片,jQuery用户会调用:

$("#Placeholder").Slideshow();
普通JavaScript页面仍然可以使用它,只是功能较少(例如没有动画),或者只在某些浏览器中使用:

Slideshow(Placeholder);

我对如何实现这一点的示例、最佳实践和教程很感兴趣。

我还没有编写任何非jquery插件,但如果您希望插件在没有jquery的情况下工作,我建议您使用纯javascript编写核心实现,并编写一种通过jquery访问它的方法,使用jquery-ish API

让我举例说明,如果你的插件提供

doAwesomeStuff(domElement);
然后,如果jQuery可用,也可以这样做

jQuery.fn.doAwesomeStuff = function (options) {
    this.each(function () {
        doAwesomeStuff(this[0]);
    });
};
因此,如果jquery可用,该插件可以用作jquery插件,并使用jquery ish API访问它。如果不是,普通javascript API无论如何都是可用的,而且由于内部实现无论如何都应该是普通javascript,因此应该可以正常工作