繁体   English   中英

jQuery插件通过选项函数返回值

[英]jQuery Plugin return Values through options function

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

它看起来像这样:

$.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;
}

我初始化插件并传递要执行的命令,但是插件不会通过values返回我需要的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传递给options中的函数,但当前不这样做。 我究竟做错了什么?

javascript prototype.call()方法还需要一个与this参数有关的参数。

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

因此-该函数没有传递任何实际值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM