如何在jQuery插件中编写回调处理函数

时间:2011-06-05 17:25:31

标签: javascript jquery jquery-plugins

我正在编写一个jQuery插件来处理事件触发后的回调函数。

(function($){
    return $.fn.myPlugin = function (options) {
         var defaults = {
             callback:defaultCallback,
             many_more_params:'default etc',
             many_more_params2:'default etc',
             etc:'default etc'
         }
         var settings = $.extend(defaults, options);

         var defaultCallback = function (params) {
             // do default actions with params
         }

         $(this).click (function () {
             var params = { param1:'hello', param2:'goodbye'};
             settings.callback(params);
         });
    };
})(jQuery);

在页面中,我想设置一个像这样的自定义回调

function customCallback (params) {
    // do custom actions with params
}

var opt = {
    callback:customCallback,
    many_more_params:'etc',
    many_more_params2:'etc',
    etc:etc
}
$('#id').myPlugin(opt);

如何让回调功能正常工作?

1 个答案:

答案 0 :(得分:4)

更改代码的顺序。放:

var defaultCallback = function (params) {
             // do default actions with params
}

之前

var defaults = {
     callback:defaultCallback,
     many_more_params:'default etc',
     many_more_params2:'default etc',
     etc:'default etc'
 }

它应该以你想要的方式工作。

示例:http://jsfiddle.net/niklasvh/k5Wvb/