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

标签 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);

如何让回调函数正常工作?

最佳答案

更改代码的顺序。放:

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/

关于javascript - 如何在 jQuery 插件中编写回调处理函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6244557/

相关文章:

javascript - 如何在数组中收集 id ="tripDate"的整个 <td> 内部 html,并使用当前日期检查每个 td 值

javascript - 局部变量因未知原因返回未定义

javascript - 在新窗口中显示 View

javascript - 无法从动态创建的表单中获取表单

jquery - 使用 jquery fullcalendar 1.5 从一系列事件中仅删除一个事件

javascript - 如何刷新 NanoGallery jQuery 插件中的内容?

javascript - 为什么组件退出时 CSSTransition 没有动画?

asp.net-mvc - 如何将 HTML 从 MVC Controller 返回到我 View 中的 div

jquery - 两个屏幕分辨率的重要属性

javascript - 使用 jQuery 显示更多/更少的项目