jquery – 带函数的$.extend()

前端之家收集整理的这篇文章主要介绍了jquery – 带函数的$.extend()前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写一个jQuery插件,需要执行回调函数,例如,当从< select>中选择一个选项时该插件适用于.

我见过插件,允许你在传递它的选项中定义函数,如下所示:

$('div.foo').pluginBar({ 
    option1: 'red',someEvent: function() {
        // Do stuff
    }
});

我希望能够在我的插件代码中定义默认的someEvent函数,但是如果用户在它们传递的选项中定义了该函数,它应该覆盖默认函数.这是可能的$.extend(),还是我看错了地方?

我已经看了plugin authoring教程,但我认为它不包括在任何地方扩展函数的默认行为.我已经阅读了有关使用init:函数内容,但我宁愿只能定义一个函数(在插件名称空间内)并使用传递给插件的选项进行更改.

解决方法

这是一个例子:
(function( $) {
  $.fn.pluginBar = function(options) {
      var settings = $.extend( {
          someEvent: function() {
              alert('default');
          }
      },options);

      return this.each(function() {
          settings.someEvent();
      });
  };
})( jQuery );

$('div.foo').pluginBar({ 
    option1: 'red',someEvent: function() {
        alert('custom');
    }
});

如果在连接插件时未指定someEvent,则将使用默认插件.

猜你在找的jQuery相关文章