在插件外部调用jQuery插件函数

use*_*743 2 jquery jquery-plugins

我已经构建了一个jQuery插件,但现在我需要使用插件外插件中的一个函数.

插件

(function ($) {
    jQuery.fn.vierGewinnt = function () {
 var VierGewinnt = function (config) {
            this.view = config.view;    
            this.dx;
            this.turn = 1;
        }
VierGewinnt.prototype.setToken = function (column) {
            for (var i = this.rows; i > 0; i--) {
                if (this.gamearray[column][i] == 0) {
                    this.gamearray[column][i] = "red";    
                    this.turn++;
                    this.findWinner(column, i);
                    break;
                }
            }

        }})(jQuery);
Run Code Online (Sandbox Code Playgroud)

main.js我试过:

$.setToken()
$.fn.vierGewinnt.setToken()
$.fn.vierGewinnt.VierGewinnt.setToken()
Run Code Online (Sandbox Code Playgroud)

也许有人有线索!Thx提前!

Che*_*vas 7

您需要做的就是返回函数/插件闭包,并创建您想要在插件外部控制的任何方法作为闭包的属性($ this).


    $.fn.vierGewinnt = function(options) {

        var $this = this;

        $this.setToken = function() {
            // setting token
        };

        return $this;
    };

然后保存对插件的引用以便稍后调用该方法.


    var vierPlugin = $('.some-element').vierGewinnt();
    vierPlugin.setToken(); // setting token outside plugin