JavaScript插件与jQuery兼容

时间:2011-04-23 13:45:10

标签: javascript jquery plugins

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

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

$("#Placeholder").Slideshow();

普通的JavaScript页面仍然可以使用它,只需要较少的功能(例如没有动画),或仅在某些浏览器中有效的功能:

Slideshow(Placeholder);

我会对示例,最佳实践以及如何执行此操作的教程感兴趣。

1 个答案:

答案 0 :(得分:1)

我没有编写任何非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,应该没有任何问题。