2014-10-04 83 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