$.fn.extend 及 dropdown 的理解

$.fn.extend 及 dropdown 的理解

    function dropdown(elem) {

    var $elem = $(elem),

    activeClass = $elem.data('active') + '-active';


$elem.hover(function() {

    $elem.addClass(activeClass);

}, function() {

    $elem.removeClass(activeClass);

});

    }


    $.fn.extend({

    dropdown:function(){

    return this.each(function(){

    dropdown(this);

    })

    }

    })

    

    $('.dropdown').dropdown();

    // 1. 这里的$.fn.extend(function(){}) 是固定的用法吗?我记得之前有说过,但是现在忘记了,不好意思。

    // 2. 这里的$.fn.extend(function(dropdwon:function(){}){}),我可以理解为:给整个jquery库里面添加一个叫dropdown的方法,如果还有别的方法,可以在后面接着添加例如dropup:function(){}这样的方法。

    // 3. dropdown方法里的嵌套我不是很懂。我可以理解为:

  // (1)jquery库里面添加了一个dropdown的方法。

  // (2)$('.dropdown').dropdown();这句话调用了jquery库中的dropdown方法

  // (3)这个方法执行 $('.dropdown').each方法,将每一个遍历到的值返回到全局中的function dropdown(elem)里面。

  // (4)如果是这样的话,我该怎么区分这两个方法。前面有句点就是jquery方法,前面没有句点就是js方法吗


辛苦老师解答。

正在回答

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

1回答

同学你好:

1、$.fn.extend() 函数为jQuery扩展一个或多个实例属性和方法(主要用于扩展方法)。

jQuery.fn是jQuery的原型对象,其extend()方法用于为jQuery的原型添加新的属性和方法。这些方法可以在jQuery实例对象上调用,因为原型上定义的方法是共享的,可以直接调用。

2、第二条和第三条同学理解的是正确的哦。

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

3、区分jquery和js方法不能通过前面的.来判断哦,因为这代表的是对象.属性,不管是jq还是js、都是这样用的,jquery与js最直观的区别就是外观上jQuery对象比js对象多了"$()",而其余的方法是要靠同学平时的积累来记忆的哦。

希望我的回答能够帮助到你,望采纳,祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

0 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

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

在线咨询

领取优惠

免费试听

领取大纲

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