JQuery

JQuery

基本使用

子主题 2

parents(‘选择器’) 可以返回指定祖先元素

保留n位小数 通过 toFixed(n) 方法

常用APl

jQuery选择器

  • 一$(“选择器”) // 里面选择器直接写 CSS 选择器即可,但是要加引号
    二子后代选择器

  • 隐式迭代(重要)

  • jQuery 筛选选择器

  • 设置样式

    • $(‘div’).css(‘属性’, ‘值’)
  • 筛选方法

    • index() 此方法可以获取该数组的索引
  • 链式编程

jQuery样式操作

    1. 参数只写属性名,则是返回属性值$(this).css(‘‘color’’);
  1. 参数是属性名,属性值,逗号分隔,是设置一组样式,属性必须加引号,值如果是数字可以不用跟单位和引号
    $(this).css(‘‘color’’, ‘‘red’’);

  2. 参数可以是对象形式,方便设置多组样式。属性名和属性值用冒号隔开, 属性可以不用加引号

    • $(this).css({ “color”:“white”,“font-size”:“20px”});
  • 设置类样式方法

    • . 添加类

      • $(“div”).addClass(‘‘current’’);
    • 移除类

      • $(“div”).removeClass(‘‘current’’);
    • 切换类

      • $(“div”).toggleClass(‘‘current’’);

jQuery效果

  • 显示隐藏效果

    • 隐藏语法规范

      • hide([speed,[easing],[fn]])
    • 切换语法规范

      • toggle([speed,[easing],[fn]])
    • 显示语法规范

      • show([speed,[easing],[fn]])
  • 滑动效果

    • 下滑效果语法规范

      • slideDown([speed,[easing],[fn]])
    • 上滑效果语法规范

      • slideUp([speed,[easing],[fn]])
    • 滑动切换效果语法规范

      • slideToggle([speed,[easing],[fn]])
  • 事件切换

    • hover([over,]out)

      • (1)over:鼠标移到元素上要触发的函数(相当于mouseenter)
        (2)out:鼠标移出元素要触发的函数(相当于mouseleave)
        (3)如果只写一个函数,则鼠标经过和离开都会触发它
  • 动画或者效果一旦触发就会执行,如果多次触发,就造成多个动画或者效果排队执行。

    • stop()
  • 淡入淡出效果

    • 淡入效果语法规范

      • fadeIn([speed,[easing],[fn]])
    • 淡出效果语法规范

      • fadeOut([speed,[easing],[fn]])
    • 淡入淡出切换效果语法规范

      • fadeToggle([speed,[easing],[fn]])
    • 渐进方式调整到指定的不透明度

      • fadeTo([[speed],opacity,[easing],[fn]])

        • 修改透明度 fadeTo() 这个速度和透明度要必须写
  • 自定义动画 animate

    • animate(params,[speed],[easing],[fn])

      • params: 想要更改的样式属性,以对象形式传递,必须写。 属性名可以不用带引号, 如果是复合属性则需要采
        取驼峰命名法 borderLeft。其余参数都可以省略

jQuery属性操作

  • 获取属性语法

    • prop(‘‘属性’’)
  • 设置属性语法

    • prop(‘‘属性’’, ‘‘属性值’’)
  • 设置或获取元素自定义属性值 attr()

    • attr(‘‘属性’’) // 类似原生 getAttribute()
    • attr(‘‘属性’’, ‘‘属性值’’) // 类似原生 setAttribute()
    • 该方法也可以获取 H5 自定义属性
  • 数据缓存 data()

jQuery文本属性值

  • 普通元素内容 html()( 相当于原生inner HTML)

    • html() // 获取元素的内容
    • html(‘‘内容’’) // 设置元素的内容
  • 普通元素文本内容 text() (相当与原生 innerText)

    • text() // 获取元素的文本内容
    • text(‘‘文本内容’’) // 设置元素的文本内容
  • 表单的值 val()( 相当于原生value)

    • val() // 获取表单的值
    • val(‘‘内容’’) // 设置表单的值

jQuery元素操作

  • 遍历元素

    • $(“div”).each(function (index, domEle) { xxx; })

        1. each() 方法遍历匹配的每一个元素。主要用DOM处理。 each 每一个
  1. 里面的回调函数有2个参数: index 是每个元素的索引号; demEle 是每个DOM元素对象,不是jquery对象

  2. 所以要想使用jquery方法,需要给这个dom元素转换为jquery对象 $(domEle)

    • $.each(object,function (index, element) { xxx; })

        1. $.each()方法可用于遍历任何对象。主要用于数据处理,比如数组,对象
  3. 里面的函数有2个参数: index 是每个元素的索引号; element 遍历内容

  • 创建元素

    • $(‘’

    • ‘’);

      • 动态的创建了一个
  • 添加元素

    • 内部添加

      • element.append(‘‘内容’’)

        • 把内容放入匹配元素内部最后面,类似原生 appendChild。
      • element.prepend(‘‘内容’’)

        • 把内容放入匹配元素内部最前面。
    • 外部添加

      • element.after(‘‘内容’’) // 把内容放入目标元素后面
      • element.before(‘‘内容’’) // 把内容放入目标元素前面
    • ① 内部添加元素,生成之后,它们是父子关系。
      ② 外部添加元素,生成之后,他们是兄弟关系

  • 删除元素

    • element.remove() // 删除匹配的元素(本身)
    • element.empty() // 删除匹配的元素集合中所有的子节点
    • element.html(‘’‘’) // 清空匹配的元素内容

jQuery尺寸,位置操作

  • jQuery 位置

    • offset() 设置或获取元素偏移
      ① offset() 方法设置或返回被选元素相对于文档的偏移坐标,跟父级没有关系。
      ② 该方法有2个属性 left、top 。offset().top 用于获取距离文档顶部的距离,offset().left 用于获取距离文档左侧的距离。
      ③ 可以设置元素的偏移:offset({ top: 10, left: 30 });

    • position() 获取元素偏移

      • position() 方法用于返回被选元素相对于带有定位的父级偏移坐标,如果父级都没有定位,则以文档为准。
        ② 该方法有2个属性 left、top。position().top 用于获取距离定位父级顶部的距离,position().left 用于获取距离定
        位父级左侧的距离。
        ③ 该方法只能获取。
    • scrollTop()/scrollLeft() 设置或获取元素被卷去的头部和左侧

  • jQuery尺寸

    • 子主题 1

其他方法

事件

事件注册

  • 单个事件注册

    • element.事件(function(){})
      $(“div”).click(function(){ 事件处理程序 })
    • 其他事件和原生基本一致。
      比如mouseover、mouseout、blur、focus、change、keydown、keyup、resize、scroll 等

事件处理

  • 事件处理 on() 绑定事件

    • element.on(events,[selector],fn)
  1. events:一个或多个用空格分隔的事件类型,如"click"或"keydown" 。
  2. selector: 元素的子元素选择器 。
  3. fn:回调函数 即绑定在元素身上的侦听函数
    • on() 方法优势1

      • 可以绑定多个事件,多个处理事件处理程序

        • $(“div”).on({
          mouseover: function(){},
          mouseout: function(){},
          click: function(){}
          });
          $(“div”).on(“mouseover mouseout”, function() {
          $(this).toggleClass(“current”);
          });
          如果事件处理程序相同
    • on() 方法优势2:

      • 可以事件委派操作 。事件委派的定义就是,把原来加给子元素身上的事件绑定在父元素身上,就是把事件委派给父元素。
        $(‘ul’).on(‘click’, ‘li’, function() {
        alert(‘hello world!’);
        });
        在此之前有bind(), live() delegate()等方法来处理事件绑定或者事件委派,最新版本的请用on替代他们
    • on() 方法优势3:

      • 动态创建的元素,click() 没有办法绑定事件, on() 可以给动态生成的元素绑定事件
        $(“div").on(“click”,”p”, function(){
        alert(“俺可以给动态生成的元素绑定事件”)
        });
        ( " d i v " ) . a p p e n d ( ("div").append( ("div").append((“

        我是动态创建的p

        ”));
  • 事件处理 off() 解绑事件

    • off() 方法可以移除通过 on() 方法添加的事件处理程序。
      $(“p”).off() // 解绑p元素所有事件处理程序
      $(“p”).off( “click”) // 解绑p元素上面的点击事件 后面的 foo 是侦听函数名
      $(“ul”).off(“click”, “li”); // 解绑事件委托
      如果有的事件只想触发一次, 可以使用 one() 来绑定事件
  • 自动触发事件 trigger()

    • 有些事件希望自动触发, 比如轮播图自动播放功能跟点击右侧按钮一致。可以利用定时器自动触发右侧按钮点击事件,不必鼠标
      点击触发。
      $(“p”).on(“click”, function () {
      alert(“hi~”);
      });
      $(“p”).trigger(“click”); // 此时自动触发点击事件,不需要鼠标点击
      element.trigger(“type”) // 第二种自动触发模式
      element.click() // 第一种简写形式

    • 有些事件希望自动触发, 比如轮播图自动播放功能跟点击右侧按钮一致。可以利用定时器自动触发右侧按钮点击事件,不必鼠标
      点击触发。
      element.triggerHandler(type) // 第三种自动触发模式
      triggerHandler模式不会触发元素的默认行为,这是和前面两种的区别。

事件对象

  • 事件被触发,就会有事件对象的产生。
    阻止默认行为:event.preventDefault() 或者 return false
    阻止冒泡: event.stopPropagation()
    element.on(events,[selector],function(event) {}

事件冒泡

  • 从最内层(如下图span)向外依次传递的顺序,这个顺序我们称之为事件冒泡(Event Bubble)

事件捕获

  • 另外一种监听事件流的方式就是从外层到内层(如:body -> span)

事件委托

  • 事件冒泡在某种情况下可以帮助我们实现强大的事件处理模式 – 事件委托模式(也是一种设计模式)

  • 那么这个模式是怎么样的呢?

    • 因为当子元素被点击时,父元素可以通过冒泡监听到子元素的点击;
       并且可以通过event.target获取到当前监听事件的元素(event.currentTarget获取到的是处理事件的元素);

XMind: ZEN - Trial Version

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值