首先我们应该知道,在jquery中,$(美元符号)就是jquery的别名,也就是说使用$和使用jquery是一样的,在很多时候我们命名空间时,正是因为这个$而产生的冲突的发生。比如说:$('#xmlas')和JQuery('#xmlas') 虽然在写法上不同,但在实际上却是完全等同的。 要想解决这个冲突,其实最简单的方法就是使用不同的名称来命名,或者让执行代码认为是不同的命名空间即可。 一、 jQuery库在其他库之前导入,直接使用jQuery(callback)方法如...
然而,在不同的文件中给一个命名空间添加属性的时候,首先要保证这个命名空间是已经存在的,同时不对已有的命名空间造成任何破坏。可以通过非破坏性的命名空间函数实现:代码如下:var KUI = KUI || {};KUI.utils = KUI.utils || {};KUI.utils.namespace = function(ns){ var parts = ns.split("."), object = KUI, i, len; if(parts[0] === "KUI"){ parts = parts.slice(1); } for(i = 0, len = ...
用 jQuery 绑定和解绑事件监听器都是非常简单的。但是当你为一个元素的一个事件绑定了多个监听器时,怎样精确地解绑其中一个监听器?我们需要了解一下事件的命名空间。 看下面这段代码: 代码如下: $(#element) .on(click, doSomething) .on(click, doSomethingElse); 像上面这样绑定事件监听器,当元素被点击时,doSomething 和 doSomethingElse 这两个监听器都会被触发。这是使用 jQuery 的一个便利之处,可以随时给元素的同一...
许多CSS样式属性的名字中都有连字符,在JavaScript中,连字符被解释为减号。 因此,CSS2Properties对象的属性名和真正的CSS属性名有点不同。 如果一个CSS属性名含有一个或多个连字符,在JS中则需要删除了连字符,并且原来紧接在连字符后的字母改为大写。 要注意的是float是JS的关键字,所以在JS中float被写作cssFloat与或floatStyle。 下面是CSS自身属性与JavaScript中CSS编码对照表: 盒子标签和属性对照:CodeCSS语法 (不区分大小...
这个标题实在拗口,Javascript命名变量所遵循的规则 1、第一个字符必须是字母、汉字字符、 下划线(_)或美元符号($) 2、剩下的可以是下划线、汉字字符、 美元符号和任何字母、数字 以下声明变量是正确的 代码如下:var p,$p,_p; var 长,宽; 以下是错误的 代码如下:var .p;//只能是字母、数字、下划线或美元符号 var -p;//只能是字母、数字、下划线或美元符号 var p*;//只能是字母、数字、下划线或美元符号 var 4p,4长;//不能以数字开...
在Jquery中,$是JQuery的别名,所有使用$的地方也都可以使用JQuery来替换,如$('#msg')等同于JQuery('#msg')的写法。然而,当我们引入多个js库后,在另外一个js库中也定义了$符号的话,那么我们在使用$符号时就发生了冲突。下面以引入两个库文件jquery.js和prototype.js为例来进行说明。 第一种情况:jquery.js在prototype.js之后进行引入,如: 在这种情况下,我们在自己的js代码中如下写的话: $('#msg').hide(); $永远代表的是...
在Jquery中,$是JQuery的别名,所有使用$的地方也都可以使用JQuery来替换,如$('#msg')等同于JQuery('#msg') 的写法。然而,当我们引入多个js库后,在另外一个js库中也定义了$符号的话,那么我们在使用$符号时就发生了冲突。下面以引入两个库文件 jquery.js和prototype.js为例来进行说明。 第一种情况:jquery.js在prototype.js之后进行引入,如: 在这种情况下,我们在自己的js代码中如下写的话: $( ' #msg ' ).hide(); $永远代表...
其他一些 JavaScript 框架包括:MooTools、Backbone、Sammy、Cappuccino、Knockout、JavaScript MVC、Google Web Toolkit、Google Closure、Ember、Batman 以及 Ext JS。 其中某些框架也使用 $ 符号作为简写(就像 jQuery),如果您在用的两种不同的框架正在使用相同的简写符号,有可能导致脚本停止运行。 jQuery 的团队考虑到了这个问题,并实现了 noConflict() 方法。 实例 您也可以创建自己的简写。noConflict() 可返回对 jQuer...
在做自己的毕业设计的时候将自己的表单元素ID和name命名为了nodeName: 代码如下: 在chrome浏览器下可以看到这么个错误: Uncaught TypeError: Object # has no method toLowerCase 经过分析后发现原来是表单元素命名的原因,修改一下就好了。
Javascript原生并不支持命名空间,需要变通来实现。 在我们创建一个JavaScript库时,命名空间就显得举足轻重了,我们可以将组成这个JavaScript库的零散的JavaScript文件(*.js)封装在命名空间中,而无须定义全局的函数或类。比如在本章节多次出现的Person,我们就可以作为库的一部分封装到合适的命名空间中: Code 5-13: 代码如下:var com = {};com.anyjava = {};com.anyjava.Person = function(name) { //私有成员 var _na...
js对关键字命名我感觉有点乱 有时候是这样:getElementById、indexOf 、charCodeAt、parseFloat、navigator.appName、navigator.appVersion/appCodeName/cookieEnable/userAgent 给人的感觉是单词的首字母大写 有时候又这样:fontsize、fontcolor 给人的感觉是都是小写 但有时候又这样:innerHTML 有没有人能告诉我这其中有没有什么规律啊,我觉得我一段时间不用就会混掉了。在线等答案! //*****等了10分钟没人回答,那我只好继续...
代码如下: var i=0; function addForm(){ i++; var textExtra=; $("#inforForm").append(textExtra); } 实现的效果是点击增加一个文本框进表单里面,自动命名name,被单引号双引号的嵌套搞得头大……
最近重构东西,碰到命名空间的设定,搜了一些知识,请教了一些高手,把自己的心得写下来相信大家都知道,window是顶级的,这里就不写window了,先忽略1:关于顶级 代码如下:var ns = ns || {};可以看到,其实就是如果发现没有这个对象,就自动创建new Object();如果有,就直接使用这个对象,这样就不会覆盖。2: 第二级,当然也可以在顶级的ns下创建第二级,即 代码如下:ns.ModuleClass = {};可以看到,在ns下创建了一个类,当然也可...
为了避免变量之间的覆盖与冲突,可以生成命名空间,命名空间是一种特殊的前缀,在js中,通过{ }对象实现。 在不同的匿名函数中,根据功能声明一个不同的命名空间,每个匿名函数中GLOBAL对象的属性都不直接挂在GLOBAL上,而是挂在次匿名函数的命名空间下,如: 代码如下: var GLOBAL={} (function(){ var a=123, a1=256; GLOBAL.A={} GLOBAL.A.str=a; })(); (function(){ var b1=123, b2=256; GLOBAL.B={} GLOBAL.B.str=a; })...
我们经常通过匿名函数(Anonymous function)来写回调。 简单来讲匿名即没有名字的函数,一般都立即执行。但是它与命名函数(有名字的函数)的性能如何呢? 我们可以比较一下,我们随便找一台可以执行Shell命令的计算机来使用大量函数调用看一看二者执行消耗时间: anonymous.js代码如下: var count = 100000000, sum = 0 while (count--) (function() { sum++ })()执行一下代码如下: $ time node anonymous.js real 0m1.456s...