zoukankan      html  css  js  c++  java
  • jQuery函数库

    jQuery函数库
    1 书写问题
    jQuery是一个类型非常丰富的函数库,他封装了以前我们所学到的大多数的属性及事件,此时一定要加以区分,正因为他是函数,所以在书写过程中我们一定要注意的是书写规则: 函数名(). 其中这个函数名可能是以前的相关属性名或事件名等熟悉关键字,此时一定要加上括号.
    2关于控制css/html
    与原生js不同的是,jQuery控制css/html用法是相似的,控制css用到的是css()函数,而控制html内容则用到的是html()函数,控制html属性用到的是prop()函数.即("选择器等获取元素方法").css();/ ("选择器等获取元素方法").css();/("选择器等获取元素方法").css();/(“选择器等获取元素方法”).html();/("选择器等获取元素方法").prop();不同的是在css()中,要访问哪个value就写哪个css样式的key,在单属性控制中,css()中接key参数后,用逗号隔开写其newvalue即是修改其css属性样式,在多属性控制中,则是用的键值对进行修改,key之间用逗号隔开;在html()中,不写参数意味着访问这个html标签,写参数则意味着修改html内容(即js里的innerHTML);在prop()中,参数即是属性名,修改单属性和多属性方式与css()方法一样.其中,因为对HTML属性中的value属性用的较多,所以jQuery封装了一个专门修改value的方法:val(),用法与html()内容控制一样.当然,还有添加/删除类名也属于修改html属性,只不过这里要强调的是对类名的操作这就是addClass()/removeClass()/toggleClass().即添加类名 ("选择器等获取元素方法").prop();不同的是在css()中,要访问哪个value就写哪个css样式的key,在单属性控制中,css()中接key参数后,用逗号隔开写其new value 即是修改其css属性样式,在多属性控制中,则是用的键值对进行修改,key之间用逗号隔开;在html()中,不写参数意味着访问这个html标签,写参数则意味着修改html内容(即js里的innerHTML);在prop()中,参数即是属性名,修改单属性和多属性方式与css()方法一样.其中,因为对HTML属性中的value属性用的较多,所以jQuery封装了一个专门修改value的方法:val(),用法与html()内容控制一样.当然,还有添加/删除类名也属于修改html属性,只不过这里要强调的是对类名的操作这就是addClass()/removeClass()/toggleClass(). 即添加类名("选择器等获取元素方法").prop();不同的是在css()中,要访问哪个value就写哪个css样式的key,在单属性控制中,css()中接key参数后,用逗号隔开写其newvalue即是修改其css属性样式,在多属性控制中,则是用的键值对进行修改,key之间用逗号隔开;在html()中,不写参数意味着访问这个html标签,写参数则意味着修改html内容(即js里的innerHTML);在prop()中,参数即是属性名,修改单属性和多属性方式与css()方法一样.其中,因为对HTML属性中的value属性用的较多,所以jQuery封装了一个专门修改value的方法:val(),用法与html()内容控制一样.当然,还有添加/删除类名也属于修改html属性,只不过这里要强调的是对类名的操作这就是addClass()/removeClass()/toggleClass().即添加类名(“选择器等获取元素方法”).addClass(),参数即是要添加的类名;删除类名的操作("选择器等获取元素方法").removeClass(),不写参数表示类名全部删除,写一个或多个参数表示删除一个或多个类名;而 ("选择器等获取元素方法").removeClass(),不写参数表示类名全部删除,写一个或多个参数表示删除一个或多个类名;而("选择器等获取元素方法").removeClass(),不写参数表示类名全部删除,写一个或多个参数表示删除一个或多个类名;而(“选择器等获取元素方法”).toggle()则表示重复执行添加/删除类名的操作,通过事件的操作来到达重复执行的效果,参数即是操作的类名.
    3关于jQuery的认知
    在常规jQUery中,其最大的特点就是拥有丰富的函数,这些函数可以实现js的功能:实现对HTML内容的修改/对HTML属性的修改,对css样式的修改,绑定相应事件属性并完成相应功能.只不过jQuery把这些实现的功能都过程性的封装成了一个个的函数,但其终究是js的继承性函数库,也继承了js的基本语法,所以在用jQuery的时候,以js基本语法为前提,凡是遇到功能性需求时,要用函数来实现,这囊括了获取元素等方法.
    4 关于变量定义
    首先要说的是,定义的变量是关于控制html/css内容及属性问题时,其修改方式还是如前文"关于控制css/html"所说的进行修改,不能简单使用变量名进行修改.其次,在有多个重复变量需求时,就需要定义一个变量以提高代码的复用性,如进行多次value值操作的时候.还需要指出的是,在需要多次进行查找一个标签元素对其进行控制操作的时候,也需要定义一个变量,以减少每次的查找次数,提高代码执行效率.
    5 关于this与$(this)
    简单地说,this在jQury里指的是"这个"的意思,当我们定义了一个事件,准备在其中进行元素过滤的时候,就需要用到this.我们在描述一个标签的时候,如果要用到"这个"等词汇的时候,就需要我们使用"this"指定.概括一句话:this指代什么需要看前面指代的是什么,是标签就是指代一个特定html标签,这个标签的所有属性都可以用".“来指定,是自定义对象就是对象,其属性方法操作也可以通过点来表示;而$(this)是jQuery的js对象,他后面接”."表示紧跟的是它的方法,css()/html()/prop()/attr()等jQUery封装起来的方法.两者不能混淆,具体来看一个例子:

     1 $("#list").delegate("a", "click", function(){
     2         if($(this).prop("class") == 'del'){
     3             $(this).parent().remove();
     4         }
     5         if($(this).prop("class") == 'up'){
     6             if($(this).parent().index()==0){
     7                 alert("That is the first one!");
     8                 return;}
     9         $(this).parent().insertBefore($(this).parent(.prev());
    10         }

    6关于事件冒泡和事件委托
    事件冒泡简单概括一下,指的是父级定义的事件响应在其相应子级也会有响应,而且,如果父级的父级定义了事件处理程序,那么会逐层向上传递,直至处理事件完成为止.这是一个简单定义,我们需要知道的是,在事件冒泡中,给我们提供了什么方便呢?允许多个操作被集中处理(把事件处理器添加到一个父级元素上,避免把事件处理器添加到多个子级元素上)它还可以让你在对象层的不同级别捕获事件.这是一个全部没有"过滤"的元素集,而阻止冒泡就可以对层级元素进行"过滤".在工作中我们常用"return false;"来阻止=事件冒泡.两者结合可以让jQuery更加人性化和智慧化,提高开发效率.事件委托就是利用事件冒泡原理特性来把事件加到父级上,通过判断子级的来源来执行相应的操作.自己来源可以是$(this)指定,也可以是其他方法.这样做的目的是减少事件的绑定次数,提高代码的执行效率,还可以通过这种方式对未来元素(以后增加的元素)绑定命令并加以操作.下面通过一段代码来加以区分:

    一般绑定事件的写法:

     1 $(function(){
     2     $ali = $('#list li');
     3     $ali.click(function() {
     4         $(this).css({background:'red'});
     5     });
     6 })
     7 ...
     8 <ul id="list">
     9     <li>1</li>
    10     <li>2</li>
    11     <li>3</li>
    12     <li>4</li>
    13     <li>5</li>
    14 </ul>

    事件委托的写法

     1 $(function(){
     2     $list = $('#list');
     3     //格式:$('选择器等获取元素的方法').delegate(发生真实事件的标签, 字符串形式的事件属性, 匿名函数)
     4     $list.delegate('li', 'click', function() {
     5         $(this).css({background:'red'});
     6     });
     7 })
     8 ...
     9 <ul id="list">
    10     <li>1</li>
    11     <li>2</li>
    12     <li>3</li>
    13     <li>4</li>
    14     <li>5</li>
    15 </ul>

    7 ajax

    ajax是一个前后台配合的技术,它可以让javascript发送http请求,与后台通信,获取数据和信息.ajax技术的原理是实例化xmlhttp对象,使用此对象与后台通信.jQuery将它封装成了一个函数$.ajax(),我们可以直接用这个函数来执行ajax请求.异步操作并且可以局部刷新(无刷新).但是为了数据安全性,ajax并不支持直接面对数据库和本地文件,需要通过第三方借口来实现实数据连接.需要注意的是,ajax是在服务器环境下运行的.

    ajax在实际操作中用到的参数:

    $.ajax({
    url:“请求地址”,
    type:“请求方式” GET(默认)/POST,
    dataTye:“预期服务器返回的数据格式” json/html/text,
    data:“发送给服务器的数据”,
    success:“请求成功的回调函数”, success:function(dat){}
    dat:接收dataType格式类型的数据返回值到这个地方来
    error:“请求失败后的回调函数”,
    async:“设置是否异步” 默认是True,代表异步 一般省略不写,都是默认值

    })

  • 相关阅读:
    iOS 多态的简单思想
    WPF SDK研究 之 AppModel
    SQL实现统计字符串出现的频次
    Python学习心得(一) 列表List
    GreenPlum之数组合并取交集及行变列、列变行函数
    SQL Server日常总结生僻小技巧 10个可能有八个平时都没用到过
    GreenPlum之按月份或季度实现行转列
    GreenPlum之生成月份字典表
    postgresql数据库中判断是否是数字和日期时间格式函数
    maven构建报错org.apache.maven.lifecycle.LifecycleExecutionException
  • 原文地址:https://www.cnblogs.com/Nick7/p/10786526.html
Copyright © 2011-2022 走看看