微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript-$.fn.myFunction()的正确用法

(function($) {
    $.fn.myFunction = function(config) {

        var defaults = {
            setting1: 'myDiv',
            setting2: ''
        };
        var config = $.extend(defaults, config); 

        //code here


    };

})(jQuery)


$(document).ready(function() {

    $.fn.myFunction({
        setting1: 'myDiv',
        setting2: ''
    });

});

这就是我一直在使用jQuery插件的方式,但是我最近了解到应该像这样使用它:

$('#myDiv').myFunction({
    setting1: 'myDiv',
    setting2: ''
}); 

1)我认为这允许将$(this)用于$(‘#myDiv’)?

2)是否需要$(document).ready(function()?

3)我使用此jQuery函数的方式是否有害?

4)如果$(‘#myDiv’).myFunction()是正确的用法,如果它只是在准备好文档时运行的函数,您将如何调用函数-请在此处查看我的用法https://stackoverflow.com/a/12316349/1455709.这仅仅是一个不正确的用法吗?功能

解决方法:

调用$.fn.myFunction()和调用$(‘#myDiv’).myFunction()是两件事.没有对与错-这取决于您在做什么.

调用$.fn.myFunction()

这本质上是一个静态函数,可以根据需要使用它.在jQuery世界中,.fn就像.prototype一样,因此$.fn.myFunction()就像调用jQuery.prototype.myFunction()一样.这是允许的,但它是与特定jQuery对象无关的静态函数调用.如果您只想进行静态函数调用,则可以执行此操作,但这通常不是jQuery原型的使用方式,我通常不建议这样做.如果您只想使用静态函数并要使用jQuery命名空间,则可以执行以下操作:

$.myFunction = function(args) {/* your code here */};

然后将其命名为:

$.myFunction();

由于根本不需要使用原型.

调用$(‘#myDiv’).myFunction()

原型(例如,jQuery世界中的.fn可以用于向实际jQuery对象添加方法的情况.

执行此操作时,$(‘#myDiv’).myFunction()是实时jQuery对象的成员函数.您可以在myFunction()实现中引用此对象,它将是一个jQuery对象,在这种情况下,该对象包含与id =“ myDiv”相对应的DOM对象.如果您从方法中返回jQuery对象,则也可以使用链接.

使用哪个?

如果您的代码在jQuery对象上运行,则它应该是实时jQuery对象上的方法,并且应该访问该方法获取jQuery对象实例数据,并且应将其声明为$.fn.myFunction = function(){} ;并将其称为$(‘#myDiv’).myFunction()`.

如果您的代码不能在jQuery对象上操作,而只是您调用的实用程序函数,而并非总是在jQuery对象上操作,那么您应该将其声明为$.myFunction = function(){};.并且应该将其称为$.myFunction().

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐