【问题标题】:How do I extend a jQuery type with new function?如何使用新函数扩展 jQuery 类型?
【发布时间】:2012-07-15 11:38:53
【问题描述】:

我有一个特殊类型的对象,它实际上是 QTip2。我想为我的 qtip 类型添加一个额外的函数,以便我可以对我的实例执行类似的操作:

myQtip1.doSomething();

如何在我的 jQuery 对象上扩展函数?

【问题讨论】:

    标签: javascript jquery-plugins javascript-objects jquery


    【解决方案1】:

    试试这个:

    jQuery.fn.extend({
        my_function: function () {
            // do stuff
        }
    });
    

    那么你就可以像这样使用它了

    $('#element').my_function();
    

    你也可以链式使用:

    $('#element').parent().my_function().show();
    

    【讨论】:

    • 名称冲突怎么办?如果在“全局 jquery”命名空间中,我该如何避免它们?
    • 查看这篇文章了解更多关于命名空间的信息:jquery-howto.blogspot.nl/2009/01/…
    【解决方案2】:

    尝试向jQuery.fn 添加内容 -

    jQuery.fn.myMethod = function () {
      //...
    };
    

    为了将其与其他库的 myMethod 区分开来,您可以将其称为 customPrefix_myMethod(将 customPrefix 替换为您自己的自定义前缀)。

    【讨论】:

    • 在 jQuery.fn 或 jQuery.fn.extend 中这样做有什么区别?
    • 应该没有大的区别,除非你想添加多个方法(其中.extend会更短)。但是,直接添加到 jQuery.fn 应该可以忽略不计,因为它避免了调用额外的函数。
    猜你喜欢
    • 1970-01-01
    • 2021-02-13
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 2018-04-11
    • 2019-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多