2014-10-04 86 views
0

所以我有这个功能jQuery的:添加回调函数,另一个函数

$.fn.myFunction = function(options, callback) { 
    var settings = $.extend({ 
     opacity  : '', 
     margin : '' 
    }, options); 
} 

我真的很喜欢这个

$('.selector').myFunction(options, function() { /* do some stuff */ }); 

一些有趣的东西,我应该在哪里我对回调函数函数内指定和怎么样?

回答

1

像这样:

JS

$.fn.myFunction = function(options , callback) { 
    var settings = $.extend({ 
     opacity  : '', 
     margin : '' 
    }, options); 

    // where you want your callback 
    if(callback && typeof callback === "function") callback(); 
} 
+0

对不起不工作。 – thednp 2014-10-04 00:16:25

+0

这很奇怪,因为它适用于我:http://jsfiddle.net/OxyDesign/2ua11u6y/你可以发送一个jsfiddle来显示你的问题?谢谢 – OxyDesign 2014-10-04 00:21:04

+0

你也可以将'callback'作为你的'options'对象的一个​​方法来添加,并像这样调用它'if(options.callback && typeof options.callback ===“function”)options.callback();' – OxyDesign 2014-10-04 00:23:35

1

回调仅仅是函数中的参数。所以,你的情况可以非常简单地表示:

var myFunction = function(options, callback) { 
    console.log('I am running in the main function'); 
    if (callback) { callback(); } 
}; 

myFunction('', function() { 
    console.log('I am running in the callback!'); 
}); 

演示是在这里:http://repl.it/0b0