0

我的应用程序有自己的 jquery 插件。它对第一个回调工作正常,第二个回调没有分配。

$('element1').myplugin({callback:foo});
$('element2').myplugin({callback:bla});

第二个回调不起作用总是调用'foo'。

插件代码:

(function($) {
    $.fn.myplugin = function(options) {
          //some code.
          options.callback();
        }
})(jQuery);
4

2 回答 2

1

(jQuery)在插件末尾添加。演示: http: //jsfiddle.net/wLEEK/
这就是它起作用的原因。现在,您的插件如下所示:

(function($) {
  $.fn.myplugin = function(options) {
      //some code.
      options.callback();
    }
})(jQuery);

您正在创建 jQuery 方法myplugin。但请注意第一行function ($) {和最后一行的代码}。您已将插件创建代码包装在一个函数中。该函数接受您调用的一个参数$。所以插件创建代码在一个函数内部,所以我们使用(jQuery)- 作为参数传入 jQuery 来调用该函数。这有点复杂,但这里有一个更熟悉的表格来帮助你理解发生了什么:

function createPlugin ($) {
  $.fn.myplugin = function(options) {
      //some code.
      options.callback();
    }
}//end of createPlugin
// myplugin isn't created yet; we need to call the function createPlugin
createPlugin(jQuery) // now myplugin is created
于 2012-08-13T11:18:17.820 回答
1

如果您包含任何 javascript,则使用升级版本,并验证您传递的请求以及您得到的响应....还要确保是否包含一个或多个 javascript,然后使用 $.noConflict(true); 可能这对你很有帮助…………

于 2012-08-13T11:30:03.507 回答