如何正确调用插件内部的函数

发布于 2024-12-19 04:25:35 字数 1224 浏览 0 评论 0原文

如何正确调用插件内部的函数?例如,如果我像这样调用函数,它工作正常,

init_tinymce();

但是如果我像这样调用函数,我会得到一个错误,提示 $.fn.get_tinyMCE.init_tinymce is not a function

$.fn.get_tinymce.init_tinymce();

下面是简化的代码,

(function($){ 
   $.fn.extend({         
       get_tinymce: function () {
            var $cm = this.ready(function(e){
                if (tinyMCE.activeEditor != null || tinyMCE.activeEditor != undefined) {
                    //console.log(tinyMCE.activeEditor);
                    for (var i = 0; i < tinyMCE.editors.length; i++) {
                        tinyMCE.remove(tinyMCE.editors[i]);
                    }

                    setTimeout(function () {
                        //load_mce_basic();
                    }, 1000);
                } 
                else {
                    $.fn.get_tinymce.init_tinymce();
                    //init_tinymce();
                }           
            });         

            function init_tinymce(){ 
                alert('2');
            };

            $.fn.get_tinymce.init_tinymce = function() {
                alert('1');
            };
        }
    });
})(jQuery);

How can I call the function inside the plugin itself correctly? For instance, it works ok if I call the function like this,

init_tinymce();

But I will get an error that says $.fn.get_tinyMCE.init_tinymce is not a function if I call the function like this,

$.fn.get_tinymce.init_tinymce();

Below are the simplified code,

(function($){ 
   $.fn.extend({         
       get_tinymce: function () {
            var $cm = this.ready(function(e){
                if (tinyMCE.activeEditor != null || tinyMCE.activeEditor != undefined) {
                    //console.log(tinyMCE.activeEditor);
                    for (var i = 0; i < tinyMCE.editors.length; i++) {
                        tinyMCE.remove(tinyMCE.editors[i]);
                    }

                    setTimeout(function () {
                        //load_mce_basic();
                    }, 1000);
                } 
                else {
                    $.fn.get_tinymce.init_tinymce();
                    //init_tinymce();
                }           
            });         

            function init_tinymce(){ 
                alert('2');
            };

            $.fn.get_tinymce.init_tinymce = function() {
                alert('1');
            };
        }
    });
})(jQuery);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

失退 2024-12-26 04:25:35

$.fn 扩展了 jQuery 插件库。如果您向 $.fn 对象添加一个函数,例如 $.fn.foo = function(),则可以像 $(elem).foo 那样调用它();,其中 this 对象引用 elem 的 DOM 对象。

更多信息: http://docs.jquery.com/Plugins/Authoring

在您的函数上,您可以这样使用它:

$("textarea").get_tinymce();

$.fn extends the jQuery plugin library. If you add a function to the $.fn object like $.fn.foo = function(), you can call it like $(elem).foo();, where the this object refers to the DOM object of the elem.

More information: http://docs.jquery.com/Plugins/Authoring

On your function, you can use it like:

$("textarea").get_tinymce();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文