你如何创建一个jQuery插件?

时间:2010-10-10 01:42:49

标签: jquery

我有以下代码,我将从jQuery文档中了解如何构建插件。

我只是想创建一个简单的isNot扩展名:

(function ($) {
    $.fn.isNot = function (selector) {
        return !this.is(selector);
    };
})(jQuery);

$(document).ready(function () {
    $("#someButton").click(function (event) {
        alert($("#someCheckbox").isNot(":checked"));           
    });
});

当我运行这个时,javascript文件正确加载,我可以单步执行firebug中的代码。我看到jQuery已正确定义,并且click事件也正确连接。

但是,我在FireBug中添加了一个手表来跟踪isNot函数,它始终为null。我无法让它成为定义。

有什么我做得不好吗?

2 个答案:

答案 0 :(得分:1)

也许您加入jQuery和插件的方式不对。

  • 检查您的script代码订单。
  • 检查jQuery是否正确加载
  • 检查您是否没有超过jQuery的实例,这将使您的插件在不可访问的实例中可用。

这是working example

正如您所提到的,问题实际上是对jQuery的多个引用的问题。

使用Telerik的外部模板时要小心,有些文件包含加载JS和/或CSS的控件,这些控件可能与您自己的模板冲突。

答案 1 :(得分:-3)

在你的isNot定义中,第二行必须是

return!$(this).is(selector);

而不是

return!this.is(selector);

仅供参考,这是一篇关于jQuery插件架构的好文章。 http://www.learningjquery.com/2007/10/a-plugin-development-pattern