2021-04-15jQuery第三天

普通的事件注册不能做事件委托,且无法实现事件解绑,需要借助其他方法。不能给动态生成的元素绑定事件。

二、jQuery事件处理

1.on( )绑定事件

on( )绑定事件可以给元素绑定单个或多个事件,多个事件处理程序

元素对象.on( " 事件类型 " , function( ) { } )
元素对象.on( {
         事件类型1 :function( ){ } ,
         事件类型2 :function( ){ } ,
         })

特殊情况:如果多个事件的处理程序完全相同,也可以用下面的格式。

元素对象.on( " 事件类型1  事件类型2 " , function( ) { } )

    <div class="box"></div>

    <script>
      $(function () {
        // 1.用on()给盒子添加多个事件
        $('.box').on({
          mouseover: function () {
            $(this).css('backgroundColor', 'pink');
          },
          mouseout: function () {
            $(this).css('backgroundColor', 'blue');
          },
        });

        // 2.给多个事件添加相同的处理函数
        $('.box').on('mouseover  mouseout', function () {
          alert('两个事件都能触发哦!');
        });
      });
    </script>
2.事件委托

on( )绑定事件可以进行事件委托。给父亲绑定事件,让子元素触发事件。

父元素元素.on( "事件类型" , ''子元素", function( ) { } )

注意:
①只能由子元素触发事件,父元素无法触发事件。原生js中的事件委托可以由父元素或子元素触发。
this指向子元素
③子元素直接写选择器,不要加$。(都是血和泪啊!!!)

// 3.事件委派
        $('ul').on('click','li',function () {
            $(this).css('backgroundColor','brown')
        })

③事件委托可以给动态生成的元素绑定事件。

3.off( )解绑事件

(1)元素对象.off( ):解绑元素的所有绑定事件
(2)元素对象.off( " 事件类型 " ):解绑指定类型的事件
(3)父元素.off( " 事件函数名 " ,"子元素" ):解除事件委托
(4)one()方法,事件只能触发一次。格式与on( )相同。

4. trigger() 自动触发事件

(1)元素对象.事件类型()
(2)元素对象.trigger( " 事件类型 " )
(3)元素对象.triggerHandler( "事件类型" )

  • 区别:triggerHandler方法不会触发元素的默认行为。
5.事件对象

与原生js中使用方法一样。例如:
(1)阻止默认事件:元素对象.preventDefault( )或者return false
(2)阻止冒泡:元素对象.stopPropagation( )

6.拷贝对象

预先有两个对象,将其中一个对象的内容复制给另一个对象。

$.extend( [ deep ] ,target , obj , [ objN ] )

(1)deep:如果值为true则为深拷贝。默认为false浅拷贝。
(2)target:目标拷贝对象
(3)obj:被拷贝的对象。
(4)objN:第N号被拷贝的对象
(5)浅拷贝对于复杂数据类型只拷贝地址给目标对象,修改目标拷贝对象中的复杂数据类型 会影响被拷贝对象。(将复杂数据类型整个覆盖掉)
(6)深拷贝完全复制,修改目标拷贝对象中的复杂数据类型 不会影响被拷贝对象。(将复杂数据类型合并到一起)
(7)目标拷贝对象原来的内容重复部分会被覆盖。

三、jQuery插件

1.网址

(1) jQuery 插件库 http://www.jq22.com/
(2)jQuery 之家 http://www.htmleaf.com/

2.jQuery 插件使用步骤:

(1) 引入相关文件。(jQuery 文件 、 插件js文件、css文件)
(2) 复制相关html、css、js (调用插件)。

3.瀑布流插件

(1)到jQuery之家下载瀑布流插件压缩包并解压。
(2)把插件文件夹中的js文件夹和css文件夹复制一份,放到我们的文件夹结构中。
(3)在插件文件夹里打开index.htm,这是一个模板。打开index.html源代码。
(4)在自己的页面中引入js文件、css文件、内嵌的js样式、内嵌的css样式、html样式
   (注意路径)
(5)不同的插件会有特殊的要求。

4.图片懒加载插件
  • 图片的懒加载就是:当页面滑动到有图片的位置,图片才进行加载.
  • 懒加载只需引入html 和 js操作 即可,此插件不涉及css。

在vscode中 ctrl + h可以快速查找并更改页面中的所有同名字段。

5.bootstrap插件

(1)到Bootstrap官网下载插件
(2)将插件中的js文件夹复制到自己的文件结构中。
(3)在页面中引入bootstrap的css文件、jQuery文件、bootstrap的js文件、html结构。

四、其它

1.本地存储(localStorage/sessionStorage)只能存储字符串类型。

(1)JSON.stringify("数据")方法可以把其他数据类型转换成字符串,并且保留原本的格式。
(2)变回来用JSON.parse("字符串")

2.多库共存

(1)jQuery中的$符号可以用jQuery替代。

(2)var 名字 = $.noConflict( )方法可以自定义名字替代$

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • ----因为前天喝多了,昨天学的效果不好,忘记了一些今天重新走一遍 ♢︹♢ 3.4 j...
    棘菀阅读 352评论 1 1
  • 注册事件 注册事件有两种方式:传统方式和事件监听注册方式1.传统注册方式 利用on开头的注册事件:btn.oncl...
    大刀劈向鬼子阅读 156评论 0 0
  • 高度和宽度 $(“div”).height();$(“div”).width(); .height()方法和.cs...
    全满阅读 277评论 1 0
  • 1.1. Vue 的基本认识 1.1.1. 官网 1)英文官网:https://vuejs.org/ 2)中文官网...
    您的名称已被使用阅读 102评论 0 0
  • 22、JQ的基础语法、核心原理和项目实战 jQ的版本和下载 jQuery版本 1.x:兼容IE6-8,是目前PC端...
    萌妹撒阅读 1,871评论 0 0

友情链接更多精彩内容