jQuery 插件 return 通过选项函数的值

jQuery Plugin return Values through options function

我正在制作自己的 jQuery 插件(我还在学习!)。单击某个元素后,插件需要 return 值。

它看起来是这样的:

$.fn.testPlugin = function(options) {

    var defaultOptions = {
        values: {
            value1: "",
            value2: ""
        },
        onDivNameClick: function() {}
    };
    options = $.extend(true, defaultOptions, options);

    //Do some initializing here

    divName.click(function () {

        //Do some other plugin stuff on click here

        // onClick User Function
        if ($.isFunction(options.onDivNameClick)) {
            options.onDivNameClick.call(options.values);
        }
    })

    //Other code here.


    return this;
}

我初始化了插件并传递了我想要执行的命令,但是插件没有 return 我需要的值 values 而是 'undefined'.
调试显示 options.values 插件中确实有数据,所以我不完全确定这是正确的方法。

$("#elName").testPlugin({
    onDivNameClick: function (values) { //values returns 'undefined'
        model.value1 = values.value1;
        model.value2 = values.value2;
    },
    option1: "",
    //other options
});

onDivNameClick 应该将 options.values 传递给选项中的函数,但目前没有。我做错了什么?

javascript prototype.call() 方法需要一个参数引用 this.

if ($.isFunction(options.onDivNameClick)) {
    options.onDivNameClick.call(this, options.values);
}

因此 - 没有实际值通过函数传递。