3-9插件哪错误了?

3-9插件哪错误了?

http://img1.sycdn.imooc.com//climg/5a504e9000014b1411110079.jpg

;(function ($){

  

  //首先创建构造方法声明对象,执行初始化

  function LazyLoad(el ,opts){  

     this.init(el ,opts);  

  }

  //默认的参数写在构造函数上

  LazyLoad.DEFAULTS = {

  dataAttr:'src';//默认的参数

  }

  //写个方法,所有的方法都是写在原型链上的

  LazyLoad.prototype.init = function () {//初始化

    this.$el = $(el);//把DOM对象转换成jquery对象

    this.opts= $.extend({},LazyLoad.DEFAULTS,opts);//参数,传递自定义参数就使用自定义参数,

    //如果没有传就使用默认的参数

    this.$win=$(window);


    this.bindEvent(); //首先执行绑定事件的方法

    this.load(); //加载图片 

  };

  LazyLoad.prototype.bindEvent = function () {

    var self = this,

        timer= null;


  this.$win.on('scroll resize',function (){

  if (timer) return;

  timer = setTimeout(function () {

  self.load();

  timer= null;//执行完一次之后把timer在变成空,

  //等下一次触发scroll事件有值之后在执行load()事件循环往复

  },280);

           

  });

  };

  LazyLoad.prototype.load = function (){

     var  self = this;


  this.$el.each(function () {

           if(inVisibleArea(this)){

              appear();

           }

  });


  //位置检测

   function inVisibleArea(elem){

    var $win = self.$win;


    return $win.scrollTop() + $win.height() >= $(elem).offset().top;

   }

   //显示图片

   function appear(elem){

    elem.src = $(elem).data(self.opts.dataAttr);

   }

  };

  // $.each-> $.extend //第一种调用方式 ,

    // $().each->$.fn.extend//第二种调用方式 ,以后我们用第二种方式调用

    //这里的每一个方法都是插件,方法名就是插件的名称

    $.fn.extend({//调取端口

    lazyload:function(){

    new LazyLoad(this, opts);//实例化,this是他本身,第二个是自定义参数

    return this;//因为要连缀所以直接返回this;

    }

    });


})(jQuery);


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
卡布琦诺 2018-01-08 10:14:20

http://img1.sycdn.imooc.com//climg/5a52d38d0001e5a209150143.jpg

http://img1.sycdn.imooc.com//climg/5a52d38c0001588814370436.jpg

我这边测试,这两个地方是有错误的,其他的地方没有报错哦!你先尝试着修改一下这两个地方,然后看看还有没有报错哦~


  • 提问者 JH鹰 #1
    还是不行 的
    2018-01-08 11:01:40
  • 卡布琦诺 回复 提问者 JH鹰 #2
    你把报错信息贴一下
    2018-01-08 11:02:41
  • 提问者 JH鹰 回复 卡布琦诺 #3
    上面的剪切图片就是报错信息
    2018-01-08 11:04:29
卡布琦诺 2018-01-07 12:48:00

你这是想要实现什么效果呢?建议你详细的描述一下你的问题哦~

  • 提问者 JH鹰 #1
    封装成插件 ,但是老报错说类型错误 等等
    2018-01-07 18:56:52
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星

相似问题

登录后可查看更多问答,登录/注册

HTML5&CSS3进阶与常用框架 2018
  • 参与学习       315    人
  • 提交作业       136    份
  • 解答问题       626    个

如果你有H5、CSS3、JS基础,热爱前端并希望在前端应用方面不断进步,那就来吧,本路径为你带来的课程有HTML5进阶、CSS3进阶、JS面向对象、jQ基础、Less等,助你进一步提升前端开发技能

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师