jQuery插件 - 将函数/方法作为选项传递

时间:2011-06-30 15:53:09

标签: jquery plugins jquery-plugins

Noob问题,我的基本设置如下:

(function($) {
    $.fn.imageSlider = function(options) {
        var defaults = {
            columns: 3,
            imgHeight: 50,
            imgWidth: 75,
            jsonScript: '',
            jsonData: {},
            onComplete: $.noop  // I want a user supplied method here
        };

        var options = $.extend(defaults, options);

        // Exec plugin here

        if($.isFunction(options.onComplete)) {
            // call user provided method
            options.onComplete.call();
        }
})(jQuery)

插件调用

 $('#gallery').imageSlider({
    columns: 6,
    jsonScript: './scripts/galley.php?id=1'
 });

插件工作正常但永远不会调用用户提供的完成功能

要使onComplete方法起作用,我需要做些什么?

1 个答案:

答案 0 :(得分:1)

我可以立即看到的一个问题是你没有正确关闭你的功能定义。

(function($) {
  $.fn.imageSlider = function(options) {

    // ...setup options and code...

  }; // <-- missing this
})(jQuery);

除此之外,一切看起来都很好:http://jsfiddle.net/y4rkS/