JQuery

Posted tcpblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JQuery相关的知识,希望对你有一定的参考价值。

jQuery

为什么要用jQuery

js书写代码时,会遇到一些问题
    • window.onload事件有事件覆盖的问题, 因此只能写一个事件

    • 代码容错性差

    • 浏览器兼容性问题

    • 书写很繁琐, 代码量多

    • 代码量乱, 各个页面到处都是

    • 动画效果难以实现

      jQuery是什么

      jQuery是js的一个库, 封装了我们开发过程中的一些功能, 方便调用,提高开发效率.

      学习jQuery:

      初期,主要学习如何使用jQuery操作DOM,其实就是学习jQuery封装好的那些功API。

 <script type="text/javascript" src="jquery-3.3.1.js"></script>     <script type="text/javascript">         $(document).ready(function(){             // 获取dom元素             var oBtn = $(‘button‘); //根据标签名获取元素             var oDiv = $(‘div‘); //根据标签名获取元素             oBtn.click(function(){                 oDiv.show(1000);//显示盒子                 oDiv.html(‘赵云‘); // 设置内容             });//事件是通过方法绑定的         })     </script>
优点
  1. 链式编程, 比如$("?").show.().html()  jQuery对象执行方法必有返回值,  最常见的就是本会对象本身

  2. 隐式迭代:隐式 对应的是 显式。隐式迭代的意思是:在方法的内部进行循环遍历,而不用我们自己再进行循环,简化我们的操作,方便我们调用。

使用
  1. 引包

  2. .入口函数

  3. 功能实现代码(事件处理)

 //1.文档加载完毕,图片不加载的时候,就可以执行这个函数。        $(document).ready(function () {            alert(1);        })          //2.文档加载完毕,图片不加载的时候,就可以执行这个函数。        $(function () {            alert(1);        }); ? ?   //3.文档加载完毕,图片也加载完毕的时候,在执行这个函数。        $(window).ready(function () {            alert(1);        })
js  jQ互换
1DOM 对象 转为 jQuery对象: $(js对象); ? 2、jQuery对象 转为 DOM 对象:   jquery对象[index];      //方式1(推荐)   jquery对象.get(index);  //方式2

 

动画
  1. show() hide() ,显示隐藏

  2. toggle() 开关式显示隐藏动画 ,

  3. slideDown()   slideUp()   卷帘门效果

  4. slideToggle()   滑入滑出

  5. fadeIn()  fadeOut()   淡入淡出

  6. aninmate()  自定义动画  (注意背景颜色需要另外导包)

  7. 停止动画  stop()  为了避免频繁执行, 先停后开动画, 避免上一次的影响, 保留最后一次的效果

事件
  1. mouseenter

  2. attr()   设置属性值或者返回属性值

  3. removeAttr()  删除属性

  4. prop( ) 设置或者返回被选元素的  属性和值

  5. attr 和prop的区别

    <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <title></title> </head> <body>     <input type="radio" id=‘test‘ name="sex"  checked/>     <input type="radio" id=‘test2‘ name="sex" />     <button>提交</button> ?     <script type="text/javascript" src="jquery-3.3.1.js"></script>     <script type="text/javascript">         $(function(){             //获取第一个input             var el = $(‘input‘).first();             //undefined  因为attr是获取的这个对象属性节点的值,很显然此时没有这个属性节点,自然输出undefined             console.log(el.attr(‘style‘));             // 输出CSSStyleDeclaration对象,对于一个DOM对象,是具有原生的style对象属性的,所以输出了style对象             console.log(el.prop(‘style‘));             console.log(document.getElementById(‘test‘).style); ?             $(‘button‘).click(function(){                 alert(el.prop("checked") ? "男":"女");             })              ? ?         })     </script>      </body> </html>

    6.removeProp()  移除属性

    1. addClass  添加多个类名

    2. removeClass  删除类名,  一个或者多个

    3. toggleClass   存在则删除, 不存在则添加

    4. html() 获取对象内的所有内容

    5. text(  )  获取对象的文本

    6. val ()  获取表单控件的值  vlaue

 

节点操作
  1. append (‘‘子节点")  追加

  2. appendTo("父节点")

  3. prepend (‘‘子节点")  插入到最前面

  4. prependTo("父节点")

  5. after(插入的元素)

  6. before()

  7. insertbefore()

  8. insertafter()

  9. clone()   克隆

  10. replaceWith()  替换元素  括号内放需要替换的结果元素

  11. replaceAll ()  替换所有   括号内放选择对象

  12. remove  删除节点,  连事件也一块删除

  13. detach()  删除节点, 保留事件

  14. empty()   清空元素的内容 ,   html("") text("")  val("")

  15. .width()  获取元素的宽度   返回值不带单位,正常盒子的width

  16. width(value)   设置宽度

  17. .height()  获取高度,  不带单位

  18. height(value)   设置高度

  19. innerHeight()   innerWidth()  元素内第一个元素的高/  宽,  包含padding  , 不包含border

  20. outWidth() outHeight()   内容外宽高

  21. offset  偏移

  22. position()  元素坐标

  23. scrollLeft()    水平方向滚动距离

  24. scrollTop()  垂直方向滚动距离

 

事件流
  1. 事件捕获阶段

  2. 处于目标阶段

  3. 事件冒泡阶段

 

事件对象  e
  1. e.stopPropagation()  不再派发事件,  阻止冒泡

  2. e.preventDefault() 阻止默认动作

  3. e.taget  返回触发此事件的元素

 

4.

altKey返回当事件被触发时,”ALT” 是否被按下。
button 返回当事件被触发时,哪个鼠标按钮被点击。
clientX 返回当事件被触发时,鼠标指针的水平坐标。
clientY 返回当事件被触发时,鼠标指针的垂直坐标。
ctrlKey 返回当事件被触发时,”CTRL” 键是否被按下。
metaKey 返回当事件被触发时,”meta” 键是否被按下。
relatedTarget 返回与事件的目标节点相关的节点。
screenX 返回当某个事件被触发时,鼠标指针的水平坐标。
screenY 返回当某个事件被触发时,鼠标指针的垂直坐标。
shiftKey 返回当事件被触发时,”SHIFT” 键是否被按下

 

  1. cancelBubble如果事件句柄想阻止事件传播到包容对象,必须把该属性设为 true。
    fromElement 对于 mouseover 和 mouseout 事件,fromElement 引用移出鼠标的元素。
    keyCode 对于 keypress 事件,该属性声明了被敲击的键生成的 Unicode 字符码。对于 keydown 和 keyup
    offsetX,offsetY 发生事件的地点在事件源元素的坐标系统中的 x 坐标和 y 坐标。
    returnValue 如果设置了该属性,它的值比事件句柄的返回值优先级高。把这个属性设置为
    srcElement 对于生成事件的 Window 对象、Document 对象或 Element 对象的引用。
    toElement 对于 mouseover 和 mouseout 事件,该属性引用移入鼠标的元素。
    x,y 事件发生的位置的 x 坐标和 y 坐标,它们相对于用CSS动态定位的最内层包容元素。
  2.  

属性和方法描述
bubbles 返回布尔值,指示事件是否是起泡事件类型。
cancelable 返回布尔值,指示事件是否可拥可取消的默认动作。
currentTarget 返回其事件监听器触发该事件的元素。
eventPhase 返回事件传播的当前阶段。
target 返回触发此事件的元素(事件的目标节点)。
timeStamp 返回事件生成的日期和时间。
type 返回当前 Event 对象表示的事件的名称。
initEvent() 初始化新创建的 Event 对象的属性。
preventDefault() 通知浏览器不要执行与事件关联的默认动作。
stopPropagation() 不再派发事件。

 

  1. bind 绑定事件   bind (type(string),  data(Objext  可选) ,   function)

    通过返回false来取消默认的行为并阻止事件起泡。 ? $("form").bind("submit", function() { return false; }) 通过使用 preventDefault() 方法只取消默认的行为。 ? $("form").bind("submit", function(event){   event.preventDefault(); });
    1. unbind()  解绑事件

    2. one()  一次性事件

 

事件委托

通俗的讲,事件就是onclick,onmouseover,onmouseout,等就是事件,委托呢,就是让别人来做,这个事件本来是加在某些元素上的,然而你却加到别人身上来做,完成这个事件。   举个列子:有三个同事预计会在周一收到快递。为签收快递,有两种办法:一是三个人在公司门口等快递;二是委托给前台MM代为签收。现实当中,我们大都采用委托的方案(公司也不会容忍那么多员工站在门口就为了等快递)。前台MM收到快递后,她会判断收件人是谁,然后按照收件人的要求签收,甚至代为付款。这种方案还有一个优势,那就是即使公司里来了新员工(不管多少),前台MM也会在收到寄给新员工的快递后核实并代为签收。

原理:

  利用冒泡的原理,把事件加到父级上,触发执行效果。

 

作用:

1.性能要好 2.针对新创建的元素,直接可以拥有事件

事件源 :

  跟this作用一样(他不用看指向问题,谁操作的就是谁),event对象下的

使用情景:

  ?为DOM中的很多元素绑定相同事件;   ?为DOM中尚不存在的元素绑定事件;

 

语法:

on(type,selector,data,fn);

描述:在选定的元素上绑定一个或多个事件处理函数

参数解释

events( String) : 一个或多个空格分隔的事件类型

selector( String) : 一个选择器字符串,用于过滤出被选中的元素中能触发事件的后代元素

data: 当一个事件被触发时,要传递给事件处理函数的event.data

fn:回调函数.

 

 

Ajax:  异步的javascript 和Xml
  1. $.load("url"  , fn(可选))  从服务器加载数据,并返回数据放入被选元素中

     

  1. getJSON(url, [data], [callback] )Query的AJAX中使用getJSON()方法异步加载JSON格式数据。获取服务器中的数据,并对数据进行解析,显示到页面中

 

  1. $.get(url, callback  )   请求数据

  2. $.post(url,  data,  callback)    提交数据

  3. $.ajax(  {}  ) 

以上是关于JQuery的主要内容,如果未能解决你的问题,请参考以下文章

markdown 在WordPress中使用jQuery代码片段

使用 NodeJS 和 JSDOM/jQuery 从代码片段构建 PHP 页面

很实用的JQuery代码片段(转)

几个有用的JavaScript/jQuery代码片段(转)

几个非常实用的JQuery代码片段

高效Web开发的10个jQuery代码片段