`

query $.fn $.fx是什么意思

    博客分类:
  • JS
 
阅读更多
[url]
http://hi.baidu.com/jjjvzugcpmcdmor/item/0e32a89c36a18544f04215d7
[/url]

$.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效。
如扩展$.fn.abc()
那么你可以这样子:$("#div").abc();
通常使用extend方法扩展,详细请看API.

$.fx是指jquery的特效。
如果使用显示、滑动、淡入淡出、动画等。
$.fx.off可以关闭动画,其实是直接显示结果。

jquery的extend和fn.extend
jQuery为开发插件提拱了两个方法,分别是:

jQuery.fn.extend(object);
jQuery.extend(object);

jQuery.extend(object); 为扩展jQuery类本身.为类添加新的方法。
jQuery.fn.extend(object);给jQuery对象添加方法。


fn 是什么东西呢。查看jQuery代码,就不难发现。

jQuery.fn = jQuery.prototype = {
   init: function( selector, context ) {//.... 
   //......
};

原来 jQuery.fn = jQuery.prototype.对prototype肯定不会陌生啦。

虽然 javascript 没有明确的类的概念,但是用类来理解它,会更方便。
jQuery便是一个封装得非常好的类,比如我们用 语句 $("#btn1") 会生成一个 jQuery类的实例。

jQuery.extend(object); 为jQuery类添加添加类方法,可以理解为添加静态方法。如:

$.extend({
  add:function(a,b){return a+b;}
});

便为 jQuery 添加一个为 add 的 “静态方法”,之后便可以在引入 jQuery 的地方,使用这个方法了,
$.add(3,4);  //return 7

jQuery.fn.extend(object); 对jQuery.prototype进得扩展,就是为jQuery类添加“成员函数”。jQuery类的实例可以使用这个“成员函数”。
比如我们要开发一个插件,做一个特殊的编辑框,当它被点击时,便alert 当前编辑框里的内容。可以这么做:
Java代码 $.fn.extend({           alertWhileClick:function(){              $(this).click(function(){                   alert($(this).val());            });            }        });        $("#input1").alertWhileClick(); //页面上为:<input id="input1" type="text"/>   

$("#input1") 为一个jQuery实例,当它调用成员方法 alertWhileClick后,便实现了扩展,每次被点击时它会先弹出目前编辑里的内容。

真实的开发过程中,当然不会做这么小白的插件,事实上jQuery提拱了丰富的操作文档,事件,CSS ,Ajax、效果的方法,结合这些方法,便可以开发出更加 Niubility 的插件。

jquery(function(){})与(function(){}(jQuery)的区别
1.first
jQuery(function(){});
全写为
jQuery(docunemt).ready(function(){
});
意义为在DOM加载完毕后执行ready()方法
2.
(funtion(){
}(jQuery);
实际执行()(para)匿名方法,只不过传递了jQuery对象。
总结:jQuery(funtion(){});用于存放DOM对象的代码,执行其中代码时DOM对象已经存在。
不可用于存放开发插件代码。因为jQuery对象没有得到传递,外部通过jQuery.methodye
调用不来其中方法。
(funtion(){
}(jQuery);用于存放开发插件的代码,执行其中代码DOM不一定存在,直接自动执行DOM操作代码请小心使用

注意:

在这里还有一个特殊的地方,就是在函数开头的地方有jQuery.extend = jQuery.fn.extend,而在程序的前面已经将jQuery.prototype赋值给jQuery.fn了,所以在后面的调用中会出现 jQuery.extend()和jQuery.fn.extend()的不同调用,这两个方法调用产生的结果也不一样,jQuery.extend() 的调用并不会把方法扩展到对象的实例上,引用它的方法也需要通过jQuery类来实现,如jQuery.init(),而 jQuery.fn.extend()的调用把方法扩展到了对象的prototype上,所以实例化一个jQuery对象的时候,它就具有了这些方法,这 是很重要的,在jQuery.js中到处体现这一点
分享到:
评论

相关推荐

    jquery中$.fn和图片滚动效果实现的必备知识总结

    图片滚动效果相信大家都使用过,看上去很简单的一个效果,如果想熟练的掌握必须知道jquery、IIFE、setInterval等基础以及$.fn用法,下面这篇文章主要介绍了关于jquery中$.fn和图片滚动效果制作的必备知识,需要的...

    vue.js this.$router.push获取不到params参数问题

    1.query方式传参和接受参数 this.$router.push({ path:'/xxx' query:{ idname:id } }) 接收的方式:this.$route.query.id 2.params方式传递参数 this.$router.push({ name:'路径名称' query:{ idname:id...

    Vue中this.$router.push参数获取方法

    传递参数的方法: 1.Params 由于动态路由也是传递params的,所以在 this...页面通过path和query传递参数,该实例中row为某行表格数据 在目标页面通过this.$route.query获取参数: this.$route.query.row.xxx 以上这篇

    SQLQuery3.sql

    电商数据库,有七个表,然后再用存储过程做多条件分页!主要就是再拼接字符串,和系统存储过程的使用。还有表与表之间的连接!

    jquery.query.js

    比如一条url为http://127.0.0.1/index.html?id=999&type=2 那么在index.html中这样写就可以获得id和type的值 var id=$.query.get("id")搜索; // id=999 var type=$.query.get("type"); // type=2

    SQLQuery4.sql

    SQLQuery4.sql

    SQLQuery1.sql

    SQLQuery1.sql

    Hibernate中的query 分页.doc

    Hibernate中的query 博客分类: • Hibernate HibernateSQLSQL ServerMySQLJDBC Hibernate中的query.setFirstResult(),query.setMaxResults(); 一、query.scroll()和query.setFirstResult(),query....

    phpQuery.php

    phpQuery,一个非常简单方便的PHP页面内容爬取方法。详细用法请百度 require("phpQuery.php");//导入phpQuery库 $html = phpQuery::newDocumentFile("https://segmentfault.com/tags"); $hrefList = pq(".tag")...

    vue跳转方式(打开新页面)及传参操作示例

    本文实例讲述了vue跳转方式(打开新页面)及传参操作。分享给大家供大家参考,具体如下: 1. router-link跳转 // 直接写上跳转的地址 &lt;span class=spanfour&gt;...id = this.$route.query.id // 新窗口打开 &lt;router

    SQLQuery2.sql

    SQLQuery2,智能点餐系统的sql

    query.with.cipher.column

    encryptRule: encryptors: aes_encryptor: type: aes props: aes.key.value: 123456abc tables: t_user: columns: pwd: cipherColumn: pwd encryptor: aes_encryptor ...query.with.cipher.column: false

    SQL(Structured Query Language).zip

    SQL(Structured Query Language).zipSQL(Structured Query Language).zipSQL(Structured Query Language).zipSQL(Structured Query Language).zipSQL(Structured Query Language).zipSQL(Structured ...

    SQLQuery17.sql

    SQLQuery17.sql

Global site tag (gtag.js) - Google Analytics