我正在为jQuery创建一个表单验证插件,并希望它在成功验证表单后调用一个函数。 该插件将具有默认的回调函数,但我想通过options参数修改它。 不幸的是我拥有(下面)不起作用。有什么想法吗?
(function($){
$.fn.extend({
validify : function(options) {
var defaults = {
callback: "callbackFunc",
};
var options = $.extend(defaults,options);
return this.each(function(){
//validation code here
//if valid call the function
if(errors==0){
options.callback;
}
function callBackFunc(){
// the default callback function
}
...
答案 0 :(得分:6)
删除引号,你就是金色。
这将传递一个函数引用。然后,您可以通过执行options.callback();
您还需要在传递引用之前声明该函数。你可以通过这样做来解决这个问题:
callback: function() { callbackFunc(); }
答案 1 :(得分:1)
传递函数本身,而不是其名称(即删除引号):
(function($){
function callBackFunc(){
// the default callback function
}
$.fn.extend({
validify : function(options) {
var defaults = {
callback: callbackFunc // IMPORTANT: remove quotes AND trailing comma
};
var options = $.extend(defaults,options);
return this.each(function(){
//validation code here
//if valid call the function
if(errors==0){
options.callback(); // note parentheses
}
...