jquery – 带函数的$.extend()

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

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

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

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

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

解决方法

这是一个例子:
  1. (function( $) {
  2. $.fn.pluginBar = function(options) {
  3. var settings = $.extend( {
  4. someEvent: function() {
  5. alert('default');
  6. }
  7. },options);
  8.  
  9. return this.each(function() {
  10. settings.someEvent();
  11. });
  12. };
  13. })( jQuery );
  14.  
  15. $('div.foo').pluginBar({
  16. option1: 'red',someEvent: function() {
  17. alert('custom');
  18. }
  19. });

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

猜你在找的jQuery相关文章