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);
}
因此 - 没有实际值通过函数传递。
我正在制作自己的 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);
}
因此 - 没有实际值通过函数传递。