• Jquery插件的简单写法


    记录下编写jquery插件的两种写法:

    写法一:

    View Code
    (function($){
    
      $.fn.hoverAlert = function(options){
    
        var def ={message:'haha'};
    
        options = $.extend(def,options);
    
        $(this).bind("mouseover",function(){
    
            alert(options.message);
    
          }
    
      });
    
    })(jQuery);

      

    写法二:

    View Code
    (function($){
    
      $.fn.extend({ function(options){
    
        var def ={message:'test'};
    
        options = $.extend(def,options);
    
        $(this).bind("mouseover",function(){
    
            alert(options.message);
    
          }
    
        });
    
      }
    
    })(jQuery);

    引用方法:

    页面中首先引入jquery 1.7 ,然后引入刚刚编写的插件js文件。

    调用示例如下:

      $(document).ready(function(){

        $("#testdiv").hoverAlert(); 

        //$("#testdiv").hoverAlert({message:'弹出内容'}); 

       });

    这里有一个弹出层的例子:

    View Code
    (function ($) {
        $.fn.hoverAlert = function (options) {
            var def = {  "auto", height: "40px", message: "haha" }; //默认设置
            options = $.extend(def, options);  //合并用户自定义设置于默认设置
            //绑定事件  鼠标进入创建弹出层  鼠标移动弹出层随之移动 鼠标离开弹出层消失
            $(this).mouseenter(function (e) {
                CreateFloatDiv(this, e.pageX, e.pageY);
            }).mousemove(function (e) {
                MoveFloatDiv(e.pageX, e.pageY);
            }).mouseleave(function () { HideFloatDiv(); });
    
            //创建弹出层
            var CreateFloatDiv = function (me,x,y) {
                $(me).append("<div class='floatDiv1988999889' style='position:absolute;border:1px solid #cccccc;'>" + options.message + "</div>");
                var floatDiv = MoveFloatDiv(x, y);
                floatDiv.css("width", options.width)
                .css("height", options.height)
                .css("background-image", "url(img/bg.png)")
                .css("backgroun-repeat", "repeat");
            }
    
            //设置弹出层跟随鼠标移动
            var MoveFloatDiv = function (x,y) {
                var floatDiv = $(".floatDiv1988999889");
                floatDiv.css("left", x + "px");
                floatDiv.css("top", y + "px");
                return floatDiv;
            }
    
            //移除弹出层
            var HideFloatDiv = function () {
                $(".floatDiv1988999889").remove();
            }
        }
    })(jQuery);

     Demo下载地址:https://files.cnblogs.com/fengzheng/jquery%E6%8F%92%E4%BB%B6%E5%86%99%E6%B3%95.rar

  • 相关阅读:
    NOI2013
    【FINAL】NOI
    【jsoi】第一季 [略]精简题解
    浏览器缓存机制--小总结
    UC和QQ两个主流浏览器 * 点击触发微信分享到朋友圈或发送给朋友的功能(转载)
    webpack加载postcss,以及autoprefixer的loader
    HTTP协议中的短轮询、长轮询、长连接和短连接,看到一篇文章有感
    webpack2.0 css文件引入错误解决及图片输出在根目录配置问题
    webpack+vue 我的视角(持续更新)
    手机端图像编辑上传-cropper
  • 原文地址:https://www.cnblogs.com/fengzheng/p/2670816.html
Copyright © 2020-2023  润新知