jQuery中1.2版本之后引入了命名空间。这个一般小型项目很少用到,但是在框架中用得较多,如Bootstrap的jquery插件。
命名空间的好处是可以集中,分开解绑。在下面的例子中,element收到click, click.ns1, click.ns2, click.ns1.ns2和click.ns2.ns1都将执行绑定的函数。
$('#element').on('click.ns1.ns2', function(e){ });
<html> <head> <title>Event Name Space</title> <script src="js/jquery-2.0.3.min.js"></script> </head> <body> <input type="button" onClick="trigger('click')" value="trigger('click')" /> <input type="button" onClick="trigger('click.ns1')" value="trigger('click.ns1')" /> <input type="button" onClick="trigger('click.ns2')" value="trigger('click.ns2')" /> <input type="button" onClick="trigger('click.ns1.ns2')" value="trigger('click.ns1.ns2')" /> <input type="button" onClick="trigger('click.ns2.ns1')" value="trigger('click.ns2.ns1')" /> <input type="button" onClick="trigger('ns1')" value="trigger('ns1')" /> <input type="button" onClick="trigger('ns2')" value="trigger('ns2')" /> <input type="button" onClick="trigger('ns1.ns2')" value="trigger('ns1.ns2')" /> <div id="element"></div> <div id="log"></div> <script type="text/jscript"> bind(); function bind(){ var $el = $('#element'); $el.on('click.ns1', function(e){ log('click.ns1', e); }) .on('click.ns2', function(e){ log('click.ns2', e); }) .on('click.ns1.ns2', function(e){ log('click.ns1.ns2', e); }) .on('click.ns2.ns1', function(e){ log('click.ns2.ns1', e); }) .on('ns1', function(e){ log('ns1', e); }) .on('ns2', function(e){ log('ns2', e); }) .on('ns1.ns2', function(e){ log('ns1.ns2', e); }); } function log(name, e){ var html = '<p><strong>' + name + '</strong> GET - <strong>' + e.type + '.' + e.namespace + '</strong></p>'; $('#log').append(html); } function trigger(name){ $('#log').html(''); $('#element').trigger(name); } </script> </body> </html>
输出:
相关推荐
命名空间在jQuery插件中起着关键作用,因为它可以防止你的插件与已存在的jQuery或者其他库的方法冲突。一种常见的做法是创建一个顶级对象来存储所有相关的插件方法,比如: ```javascript var MyNamespace = ...
在jQuery中,命名空间可以被视为事件类型后的附加标识符,它将事件绑定限定在特定的范围内。例如,使用`.bind("click.plugin", function() {...})`的方式可以创建一个名为"plugin"的命名空间,并将点击事件绑定在这...
在没有看到这篇 文章之前,我一直不知道原来bind也可以有命名空间。事实上,我看完这篇文章后,再去翻了一下手册,也才发现了一点点的注释。但手册也仅仅是一句话就带 过去了。没有过多的深究,或许他认为命名空间这...
总之,模拟jQuery命名空间是JavaScript开发中的重要技巧,它可以避免命名冲突,提高代码的模块化程度,同时也有助于保持代码的整洁。通过正确使用命名空间,我们可以更好地组织和管理项目,尤其是在使用多个库和插件...
以标题中提到的"jQuery 事件的命名空间简单了解"为例,我们可以通过以下方式理解这一概念。 假设我们有如下代码: ```javascript $(‘#element’) .on('click', doSomething) .on('click', doSomethingElse); ...
jquery.xmlns-1.7.0.js 是根据jquery.xmlns.js改写的适用于各种版本的jquery解析带命名空间的XML数据,里面附有实例代码,如果使用中有遇到问题,可以反馈,我会进一步改进。
为了避免这一点,可以使用事件命名空间或使用匿名函数包装,或者利用JQuery的$.proxy()方法来改变函数的执行上下文。 而通过事件对象的data属性传递参数是更为灵活和常用的方法。在绑定事件时,我们可以传递一个...
同时,`delegate`支持多个事件类型和命名空间。 ```javascript $('#container').delegate('a', 'click', function() { alert("That tickles!"); }); ``` ### `live`, `delegate`和`bind`的联系 这三种方法都用于...
文章目录事件绑定事件解绑事件冒泡什么是事件冒泡如何阻止事件冒泡默认行为什么是默认行为如何阻止默认行为jQuery事件自动触发jQuery自定义事件什么是自定义事件自定义事件满足的条件jQuery的事件命名空间什么是事件...
在示例中,`bind()`方法被用来为div元素绑定两个点击事件:一个是无命名空间的click事件,另一个是带有.plugin命名空间的click事件。 `trigger()`方法用于触发元素上的事件。在示例中,当按钮被点击时,div元素上的...
通过合理的使用命名空间以及了解如何使用 `unbind()` 来解除绑定,可以帮助开发者更高效地管理和控制页面中的事件行为。然而,随着 jQuery 的发展,现代浏览器提供的原生 API 也变得越来越强大,因此在新项目中考虑...
总结来说,jQuery中的命名空间和闭包是JavaScript语言特性在实际应用中的体现。命名空间通过对象来组织相关功能,避免了变量冲突;而闭包则提供了一种控制作用域和数据访问的有效手段,保证了代码的独立性和安全性。...
- `jQuery.noConflict(extreme)`:更彻底地释放jQuery的命名空间。 **选择器** jQuery提供了多种选择器,包括基本选择器(如ID、元素类型、类名、通配符)、层级选择器(如祖先、后代、相邻、同辈)、基本过滤选择...
jQuery不会与全局命名空间冲突,这减少了与其他JavaScript库产生冲突的可能性,也意味着学习曲线相对平缓。 接下来,会讲解如何开始使用jQuery。要开始使用,你需要先下载jQuery库,可以从官方网站获取最新版本,...
文章中还提到了事件命名空间的概念,即可以绑定和触发具有特定命名空间的事件。例如: ```javascript $(document).bind('click.a', function() { console.log(1); }); $(document).bind('click', function() { ...
在实际项目中,还可以利用JQuery的事件命名空间来管理事件,这样可以更方便地为特定类型的事件进行订阅和取消订阅,或者在需要的时候发布事件到特定的命名空间中去。 总结起来,JQuery自定义事件实现发布/订阅模式...
这个版本还引入了新的API,如`.on()`方法的命名空间支持,增强了事件处理能力。 3. **jQuery 1.4.4**: 这个较早的版本引入了$.proxy()函数,用于绑定函数上下文,以及$.trim()用于字符串的修剪,增强了DOM操作和...