我打算写一个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类API来访问它。如果没有,纯javascript API无论如何都是可用的,并且由于内部实现无论如何都应该是纯javascript,应该没有任何问题。