位置: 编程技术 - 正文
推荐整理分享实例讲解jQuery中对事件的命名空间的运用(jqueryui),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:jquerycdn,jquerycdn,jquery的用法,jquery的使用步骤,jquery的使用步骤,jquery100例,jquery示例,jquery 使用,内容如对您有帮助,希望把文章链接给更多的朋友!
用 jQuery 绑定和解绑事件监听器都是非常简单的。但是当你为一个元素的一个事件绑定了多个监听器时,怎样精确地解绑其中一个监听器?我们需要了解一下事件的命名空间。
看下面这段代码:
像上面这样绑定事件监听器,当元素被点击时,doSomething 和 doSomethingElse 这两个监听器都会被触发。这是使用 jQuery 的一个便利之处,可以随时给元素的同一个事件添加不同的监听器。不像用 onclick 那样,新的监听器会覆盖旧的。
如果你想解绑其中一个监听器,比如 doSomething,怎么做呢?
是这样吗?
注意!上面这行代码会把元素的 click 事件的所有监听器全部解绑,而这并不是我们要的结果。
幸运的是 jQuery 的 .off() 方法可以接受第二个参数,就像 .on() 一样。只要把监听器函数的名字作为第二个参数传入 .off() 方法,就能够解绑指定的监听器。
但是如果你不知道这个函数的名字,或者你用的是匿名函数:
怎样才能精确地解绑某一个 click 事件监听器呢?该了解一下 jQuery 的事件命名空间了!
先上代码:
这里不只是把 click 事件作为参数传入 .on() 方法,而是给 click 事件指定了一个命名空间,然后监听了这个命名空间里的 click 事件。此时,即使监听器是匿名函数,实际上它也是“有名”的了。现在你可以像下面这样解绑某一个具体的命名空间里的事件监听器了。
这是 jQuery 为我们提供的又一个方便而强大的功能,它的内部实现肯定很有意思!
我们再来看一些代码:
当然,我们也可以用bind进行事件绑定。我们看到上面的代码,我们可以在事件后面,以点号,加我们的名字,就是事件命名空间。所谓事件命名空间,就是事件类型后面以点语法附加一个别名,以便引用事件,如”click.a”,其中”a”就是click当前事件类型的别名,即事件命名空间。
假如我们要删除如下命名空间:
我们可以用:
要注意的是:
假如我们写了如下代码:
那么我们要用trigger触发click事件,也就是触发第一个,岂不是把click.a和click.a.bb都触发了,那如何解决这个问题呢,我只想触发click,而不触发click.a及以下的命名空间?
没关系! 有如下解决办法:
如果事件类型后面附加感叹号,则表示触发不包含命名空间的特定事件类型。
假如我们只想触发click,可以这么写:
只触发bb,可以这么写:
有了命名空间,可以方便我们在同一个事件上面做管理啦!!!
jQuery中借助deferred来请求及判断AJAX加载的实例讲解 ajax请求异步队列加载我们在开发程序的时候通常会碰到使用ajax加载数据显示到列表的情况。ajax默认使用异步加载(async:true)。为什么不使用同步呢,
JQuery点击事件回到页面顶部效果的实现代码 JQuery点击事件回到页面顶部效果的实现代码//2个div,点击某个时回到顶部divstyle="height:px"/divdivid="top"top/div引用JQueryscripttype="text/javascript"$(f
通过jquery-ui中的sortable来实现拖拽排序的简单实例 1.引入文件scriptsrc="{sh::PUB}js/jquery-1..1.min.js"/scriptlinkrel="stylesheet"href="Public/css/jquery-ui.min.css"scriptsrc="{sh::PUB}js/jquery-ui.min.js"/script2.给元素附上sortable类tbody
标签: jqueryui
本文链接地址:https://www.jiuchutong.com/biancheng/387257.html 转载请保留说明!上一篇:jquery简单插件制作(fn.extend)完整实例(jquery插件开发方法)
友情链接: 武汉网站建设