zoukankan      html  css  js  c++  java
  • jQuery 事件的命名空间的含义

    对于jquery的on的events解释是 一个或多个空格分隔的事件类型和可选的命名空间,或仅仅是命名空间,比如"click", "keydown.myPlugin", 或者 ".myPlugin"。

    这里的命名空间是什么意思呢?作用又是什么呢?

    $('#element') 
    .on('click', doSomething) 
    .on('click', doSomethingElse); 

    像上面这样绑定事件监听器,当元素被点击时,doSomething 和 doSomethingElse 这两个监听器都会被触发。这是使用 jQuery 的一个便利之处,可以随时给元素的同一个事件添加不同的监听器。不像用 onclick 那样,新的监听器会覆盖旧的。 
    如果你想解绑其中一个监听器,比如 doSomething,怎么做呢? 
    是这样吗? 

    $('#element').off('click'); 

    注意!上面这行代码会把元素的 click 事件的所有监听器全部解绑,而这并不是我们要的结果。 
    幸运的是 jQuery 的 .off() 方法可以接受第二个参数,就像 .on() 一样。只要把监听器函数的名字作为第二个参数传入 .off() 方法,就能够解绑指定的监听器。 

    $('#element').off('click', doSomething); 

    但是如果你不知道这个函数的名字,或者你用的是匿名函数:

    $('#element').on('click', function() { 
    console.log('doSomething'); 
    }); 

    怎样才能精确地解绑某一个 click 事件监听器呢? 
    先上代码: 

    $('#element').on('click.myNamespace', function() { 
    console.log('doSomething'); 
    }); 

    这里不只是把 click 事件作为参数传入 .on() 方法,而是给 click 事件指定了一个命名空间,然后监听了这个命名空间里的 click 事件。此时,即使监听器是匿名函数,实际上它也是 “ 有名 ” 的了。现在你可以像下面这样解绑某一个具体的命名空间里的事件监听器了。 

    $('#element').off('click.myNamespace'); 
  • 相关阅读:
    阿里云oss怎么上传文件夹
    HTTP文件上传服务器-支持超大文件HTTP断点续传的实现办法
    让富文本编辑器支持复制doc中多张图片直接粘贴上传
    CSDN-markdown 文字样式设置(字体, 大小, 颜色, 高亮底色)
    网络编程基础知识点
    inet_addr 和inet_ntoa函数作用
    sockaddr和sockaddr_in的区别
    简析TCP的三次握手与四次分手
    TCP三次握手和四次挥手原理分析
    htons(), ntohl(), ntohs(),htons() 函数功能
  • 原文地址:https://www.cnblogs.com/answercard/p/5797855.html
Copyright © 2011-2022 走看看