jQuery extend 函数是怎么回事

What's going on with jQuery extend function?

本文关键字:怎么回事 函数 extend jQuery      更新时间:2023-09-26

我正在向我的网站添加一个照片库,并且它都可以正常工作,但我很好奇某些JS中发生了什么

(function($){
  $.fn.extend({
    simpleGal: function (options) {
      var defaults = {
        mainImage: ".placeholder"
      };
      options = $.extend(defaults, options);
      return this.each(function () {
        var thumbnail = $(this).find("a"),
            mainImage = $(this).siblings().find(options.mainImage);
        thumbnail.on("click", function (e) {
          e.preventDefault();
          var galleryImage = $(this).attr("href");
          mainImage.attr("src", galleryImage);
        });
      });
    }
  });
})(jQuery);

$.fn.extend是怎么回事?和默认值?我在var缩略图之后得到了所有内容,但我对上半场发生的事情有点困惑。

$.fn.extend 将两个对象合并到第一个对象中

见参考

在这里,定义选项将使用模块用户提供的自定义选项进行扩展

$.fn.extend函数,来自文档:

扩展 jQuery 原型 ($.fn) 对象以提供可以链接到 jQuery() 函数的新方法。

因此,它允许您向jQuery对象添加功能。这里添加了函数simpleGal

defaults指定传递到函数中的参数的默认值。然后使用 extend() 合并默认值 - 任何默认值都将被传入的值覆盖。这对于具有许多可能参数并替换代码的复杂函数非常有用,例如:

param1 = (typeof param1 !== 'undefined') ? param1 : 'default-val';