JavaScript插件与jQuery兼容

JavaScript plugin compatible with jQuery

本文关键字:兼容 jQuery 插件 JavaScript      更新时间:2023-09-26

我打算写一个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,应该没有任何问题。