jQuery扩展对象方法详解:$.extend与$.fn.extend的区别及实战

作者:工具松鼠

时间:2026-10-22

浏览:472

本文详解jQuery扩展对象的两种核心方式:对jQuery类本身的扩展($.extend)与对jQuery对象实例的扩展($.fn.extend)。通过一个右下角滑动提示框ShowMsg的完整代码示例,演示如何定义参数、控制动画效果及自动关闭逻辑,帮助开发者理解并应用这两种扩展模式。

文章目录

jQuery扩展对象方法实战

本文通过具体实例解析jQuery扩展对象的方法,提供可参考的代码实现。

根据项目实际需求,需要对jQuery进行功能扩展,具体需求如下。

项目要求在浏览器右下角显示操作错误或系统提示信息,并具备滑动移出及手动关闭效果。为此,自定义了一个表现良好的弹出框组件,并通过给jQuery添加ShowMsg方法来实现。

首先展示相关代码实现。


$.fn.extend({
  ShowMsg: function (width, height, msgTitle_, msgContent_) {
      var TopY = 0; //初始化元素距父元素的距离
      $("#messageTitle").html(msgTitle_);
      $("#messageResDes").html(msgContent_);
      $(this).css("width", width + "px").css("height", height + "px"); //设置消息框的大小
      $(this).slideDown(1000); //弹出
      $("#messageTool").css("margin-top", -height); //为内容部分创建高度 溢出
      $("#message_close").click(function () {//当点击关闭按钮的时候
        if (TopY == 0) {
          $("#message").slideUp(1000); //这里之所以用slideUp是为了兼用Firefox浏览器
        }
        else {
          $("#message").animate({ top: TopY + height }, "slow", function () { $("#message").hide(); }); //当TopY不等于0时 ie下和Firefox效果一样
        }
        return false;
      });
      $(window).scroll(function () {
        $("#message").css("top", $(window).scrollTop() + $(window).height() - $("#message").height()); //当滚动条滚动的时候始终在屏幕的右下角
        TopY = $("#message").offset().top; //当滚动条滚动的时候随时设置元素距父原素距离
      });
      setTimeout(function () {
        if (TopY == 0) {
          $("#message").slideUp(1000); //这里之所以用slideUp是为了兼用Firefox浏览器
        }
        else {
          $("#message").animate({ top: TopY + height }, "slow", function () { $("#message").hide(); }); //当TopY不等于0时 ie下和Firefox效果一样
        }
        return false;
      }, 8000); //8s后自动滑动关闭
    }
})

代码逻辑清晰且注释详细,接下来重点讲解jQuery扩展的具体实现方式。

上述示例使用了$.fn.extend进行扩展,这属于对jQuery原生对象的方法扩展。jQuery的扩展机制主要分为两类:一是对jQuery类本身进行扩展(JQuery.extend),二是对jQuery对象实例进行方法扩展($.fn.extend)。下文将分别说明。

1、使用JQuery.extent对jQuery类本身进行扩展:

jQuery类本身的扩展:$.extend


JQuery.extend({
  showInfor:function(0{
      //do something
  }
});

具体调用方式见下文示例。


$.showInfor();//这样就调用到了

2、使用$.fn.extend进行对象方法扩展:

本文开头的示例即采用此方式,直接查看调用代码即可。

jQuery对象方法的扩展:$.fn.extend


$("#messageBox").ShowMsg(230,100,"系统提示","提示信息");

说明:$.fn.extend用于为所有jQuery对象扩展方法。只要jQuery能够定位到DOM元素,即可直接调用该方法。因此,只需先选中目标对象,随后直接调用扩展方法即可。

更多关于jQuery相关内容感兴趣的读者可查看本站专题:《jQuery扩展技巧总结》、《jQuery常用插件及用法总结》、《jQuery切换特效与技巧总结》、《jQuery遍历算法与技巧总结》、《jQuery常见经典特效汇总》、《jQuery动画与特效用法总结》及《jquery选择器用法总结》

希望本文所述内容对大家掌握jQuery程序设计有所帮助。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章