jfinal #(o?o.id:'')是什么意思

随笔分类 - 前端(html/css/js/as3.0)
关于前端相关知识
摘要: 简介: React是Facebook开发的一款JS库 React解决了什么问题? 1)、首先是以往mvc模式的缺陷,当代码库庞大时,mvc非常的复杂,每添加新的功能,项目的复杂度就几何倍的增长,导致代码的维护性很差,所以mvc不合适太大型的前端应用。 2)模型和视图间可能存在的双向数据流动 Reac
super-d2 阅读(259) |
摘要: node安装: 到https://nodejs.org/en/download/releases 下载编译好的包, 如:https://nodejs.org/download/release/v4.4.3/node-v4.4.3-linux-x64.tar.gz 拷贝到/data1/program下
super-d2 阅读(574) |
摘要: 1、JavaScript注入就是在浏览器地址栏中输入一段js代码,用来改变页面js变量、页面标签的内容。使用Javascript注入,用户不需要关闭或保存网页就可以改变其内容,这是在浏览器的地址栏上完成的。命令的语法如下:Js代码javascript:alert(#command#) 例如,如果你想...
super-d2 阅读(669) |
摘要: 一、前言: 作为程序开发,单元测试有时候是必要的,相信大多数做过开发的都听说过测试驱动开发(TDD),而TDD的基本思路就是通过测试来推动整个开发的进行,先写测试后写业务代码;既然是单元测试,肯定有运行测试的程序(或者说框架)才可以,对于后端开发领域,以Java开发为例,我们有著名的JUnit;CPP的的有cppUnit;C#的有NUnit;但是在前端开发领域,我们却很少听得有啥单元测试框架,以我目前的公司为例,基本流程就是:后端开发API(RESTful也好、WebService也好)/美工把页面设计并且切片好=&前端用这些页面,然后写js;或者说前后端开发并行一点,在界面没有出来之前
super-d2 阅读(9503) |
摘要: 由于数据库连接池是使用多线程方式实现,当多个用户访问而且访问数目多于最大连接数时,我给予的解决方法是等待;而等待的情况,客户端必然要做相应的处理,优化用户的操作体验;我们使用jq框架,处理如下:View Code $(&#btn1&).click(function () { $.ajax({ type: &POST&, contentType: &application/json&, url: &../WebService/MyTest.asmx/HelloWorld&, ...
super-d2 阅读(1031) |
摘要: 这里有jsonp的详细介绍:http://www.cnblogs.com/dowinning/archive//json-jsonp-jquery.html,我就不去啰嗦了,本质上都是规定好的协议的方式,只是jsonp协议的约束方式是由服务器端去约定的,然后本地自己定义的要符合这个约定,但是事先服务器端不知道这个约定怎么去定,所以需要客户端通过事先的传递个函数名给服务器端,然后服务器端就知道怎么生成相应的调用;而ajax的约束方方式由于浏览器自己去定义了,然后编写js程序的人必须遵守这个约定(即那个回调函数onreadystatechange的名字是限定的),然后浏览器生成
super-d2 阅读(181) |
摘要: Canvas 和 SVG 都允许您在浏览器中创建图形,但是它们在根本上是不同的。SVGSVG 是一种使用 XML 描述 2D 图形的语言。SVG 基于 XML,这意味着 SVG DOM 中的每个元素都是可用的。您可以为某个元素附加 JavaScript 事件处理器。在 SVG 中,每个被绘制的图形均被视为对象。如果 SVG 对象的属性发生变化,那么浏览器能够自动重现图形。CanvasCanvas 通过 JavaScript 来绘制 2D 图形。Canvas 是逐像素进行渲染的。在 canvas 中,一旦图形被绘制完成,它就不会继续得到浏览器的关注。如果其位置发生变化,那么整个场景也需要重新绘制
super-d2 阅读(3787) |
摘要: 在客户端存储数据HTML5 提供了两种在客户端存储数据的新方法:localStorage - 没有时间限制的数据存储sessionStorage - 针对一个 session 的数据存储之前,这些都是由 cookie 完成的。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不高。在 HTML5 中,数据不是由每个服务器请求传递的,而是只有在请求时使用数据。它使在不影响网站性能的情况下存储大量数据成为可能。对于不同的网站,数据存储于不同的区域,并且一个网站只能访问其自身的数据。HTML5 使用 JavaScript 来存储和访
super-d2 阅读(243) |
摘要: Server-Sent 事件 - 单向消息传递Server-Sent 事件指的是网页自动获取来自服务器的更新。以前也可能做到这一点,前提是网页不得不询问是否有可用的更新。通过服务器发送事件,更新能够自动到达。例子:Facebook/Twitter 更新、估价更新、新的博文、赛事结果等。浏览器支持所有主流浏览器均支持服务器发送事件,除了 ie。接收 Server-Sent 事件通知EventSource 对象用于接收服务器发送事件通知。案例:建立一个demo_sent.jsp文件,代码如下:View Code &%@ page contentType=&text/event-st
super-d2 阅读(3478) |
摘要: 什么是 Web Worker?当在 HTML 页面中执行脚本时,页面的状态是不可响应的,直到脚本已完成。web worker 是运行在后台的 JavaScript,独立于其他脚本,不会影响页面的性能。您可以继续做任何愿意做的事情:点击、选取内容等等,而此时 web worker 在后台运行。由此得知:web Worker中的脚本是另外的一个进程,在解决海量数据处理时导致的页面堵塞情况方面具有划时代的意义。浏览器支持所有主流浏览器均支持 web worker,除了 IE的一些版本。示例:demo_workers.jsView Code var i=0;function timedCount(){
super-d2 阅读(686) |
摘要: 这里已经是简单的HelloWorld:https://github.com/seajs/seajs/issues/374,超级简单的入门;seaJs的简介就不说了,这里有(http://seajs.org/docs/):不必累赘;截几个图,大家就可以理解这种框架所带来的好处了:第一点,文件结构更加清晰传统项目结构的:用了模块化框架:可见文件量立马少了,其实文件都在templates这个文件里面了,这一点随着以后的文件增加所带来的好处是必然的,文件的管理更加方便;第二点,也是截图:传统的用模块化:可以见html上面少了一堆的&script&&/script&标签。----
super-d2 阅读(20244) |
摘要: 要求是这样的:有组员和组两个集合,组员可以属于多个组;然后求多个组员所属的组别的交集;假设集合的关系如下:那么对于组员的集合来说:记录其id为customers_id(从0开始递增),对于组来说:记录其id为gruops_id(从0开始递增)就可以定义为一个数组:var customers = [{&customers_id&:1,&group_ids&: [1,2,3]} , {&customers_id&:2,&group_ids&:[1,2,3,4]}, {&customers_id&:3
super-d2 阅读(314) |
摘要: 前一段时间,跟朋友讨论关于css合并的问题,之前我处理css合并一般使用手动合并的方式(即一个一个文件的copy里面的内容然后合成为一个文件),因为项目不大,所以,处理文件比较少的情况下还是比较简单。但是一旦文件变得比较多比如说成千上万个css文件那就是一个比较可观的工作量了。但是对于这么一种情况,我的那位朋友说其实一般来说还有其他的方式可以自动化的处理这些文件。我把我理解的处理方式介绍一下吧:比如说有这些css文件:1.css、2.css、3.css、4.css、5.css;我们要把这五个文件合成为一个,那么我们在js中做这样的处理:1 &script type=&text/
super-d2 阅读(139) |
摘要: 1)应用平台类:PhoneGAP:可以方便访问设备能力、生成本地应用格式,具体可以查阅我之前写的博文Titanium: 支持2/3D动画、地理位置、指南针、地图、社交应用鉴权、SQLite数据库访问等等BAE:中国移动的HTML5应用框架,支持设备能力访问、应用安全保护等功能,具体可访问http://labs.chinamobile.com/BAE2)UI类框架:jQuery Mobile、Sencha Touch、jQTouch、Jo、iScroll3)核心类库框架:jQuery、Zepto.js、Dojo、YUI4)MVC框架:Backbone5)测试框架:Quite、Jasmine6).
super-d2 阅读(195) |
super-d2 阅读(123) |
摘要: js的引擎是单线程执行的,也就是说在js的进程时间线中同一时间只有一个线程在执行,PS:如果不了解单线程与多线程的区别建议看看《现代操作系统》里面有很好的说明。很多人会有疑问,如果是单线程的那么js中是怎么实现onclick、onload、onreadstatechange、setTimeOut等事件的,答案就是浏览器提供。请看下面关于浏览器内核的图:可以看到浏览器把js执行引擎做为浏览器内核里面的一个线程,当用户在浏览器单击,如果我们添加了onclick时间,那么浏览器帮助我们侦听了这个事件,因为我们(o代表DOM或者BOM对象)o.onclick=function(){};指定对o对象..
super-d2 阅读(6498) |
摘要: 虽然之前也有对HTML5有部分的了解,大了解都不深,而且断断续续,实在不想只是停留在了解这个程度上面,所以,从今天开始要有计划的学习HTML5。HTML5学习计划:1、HTML5文档类型定义Doctype2、HTML5语义化标签3、音频、视频标签(HTML5音乐播放器 )4、HTML5表单元素5、Canvas像素处理(用Canvas玩图片处理)6、HTML5中的History和Location对象7、离线存储8、本地存储9、本地数据库10、文件API11、地理定位12、XMLHttpRequest Level2CSS3学习计划:1、新增属性2、CSS3 动画3、新增选择器学习过程中注意平台差异
super-d2 阅读(897) |
摘要: 一、创建对象:View Code 1 &script type=&text/javascript&& 2 var person = new Object(); 3 person.name = &Nicholas&; 4 person.age = 29; 5 person.job = &Software Engineer&; 6 person.sayName = function(){ 7 alert(this.name); 8 }; 9 person.sayName();10 &/script&二、工厂模式:V
super-d2 阅读(119) |
摘要: js中最复杂的概念莫过于原型链了,之前学习原型链基本上就知道有这么一个东西,也不大理解:然后面试的时候我是这样背的:对像的原型就是它的prototype属性所对于的值,它初始化化为一个对象,这个对象有一个constructor属性指向与原型相关联的那个构造函数。每个对象的原型的属性和方法表现为每个以它为原型的属性和方法。虽然我整句话都背下来了,但是理解还是模模糊糊的。现在来写写代码,画画UML图来理解理解原型这么一个概念!!先来代码: 1 &script type=&text/javascript&& 2 function Person(){ 3 4 ...
super-d2 阅读(354) |
摘要: 1)获取事件源:ie用srcElement,ff用target2)对于xhrie是ActiveXObject;ff是XMLHttpRequest3)对于xhrff可以用onload事件检测请求是否完成;ie只能用onreadstatechange然后检测readstate和status;4)对于innerTextff不支持,它支持textContent;而ie支持innerText、innerHTML、outerHTML、outerText5)事件侦听ie使用attachEvent、detachEvent,而ff使用addEventListener、removeEventListener6)i
super-d2 阅读(86) |
摘要: js本身是单线程的,就是说:在一定时间范围内仅一部分js代码能运行。受限于单线程的特点,异步事件也必须排队等候(即异步事件对应的JS回调函数, 也必须排队等候执行, 如何排队则因浏览器而异) ,那些是异步事件呢?鼠标响应事件、计时器、XMLHttpRequest请求完成;
super-d2 阅读(66) |
摘要: 典型的url是这样的形式的,如:http://www.baidu.com/news.jsp?date=123&id=2&type=yule所以要URL参数解析为一个对象的话,就要先获取?后面的键值对本例子中为:date=123&id=2&type=yule然后一个一个的解析:最后成为{date=123,id=28,type=yule}代码如下:View Code 1 &script type=&text/javascript&& 2 function parseQueryString(url){ 3 4 if(p
super-d2 阅读(179) |
摘要: 对象里面可以包含变量=值,变量=数组,变量=对象;即:对象 ={ 变量=值, 变量=数组,、 变量=对象}在对对象进行复制的时候,如果直接复制对象不经过任何处理,那么对变量中对应的对象和数组,由于其变量只是存储着指向对象或者数组在堆中的值,那么我们只是复制指向对象和数组的指针,于是对于复制出来的副本,我们对副本中的变量所对应的数组和对象所做的任何都将会影响到被复制对象的本身,这就是所谓的浅复制;而相反如果我们对于对象进行处理,使到我们复制的是数组和对象所指向的值而非指向该对象和数组的指针,而且我们对这个副本所做的任何的改变都不会影响到原对象,那么就是所说深复制。下面是转载的代码转自:ht...
super-d2 阅读(116) |
摘要: View Code &!DOCTYPE HTML&&html&&head&&meta charset=&utf-8& /&&title&&/title&&style&li{float:list-style:width:60}ul li a{text-decoration:display:text-align:padding:8}ul li a:hover{background-color:#0}#tcontent{cl
super-d2 阅读(80) |
摘要: 实现上面的效果,css如下:View Code 1 &!DOCTYPE HTML& 2 &html& 3 &head& 4 &meta charset=&utf-8& /& 5 &title&&/title& 6 &style& 7 #item{background-color:#ff0;width:500 } 8 .pic,.content{display:table-} 9 .pic{width:150margin:10background-color:#f0
super-d2 阅读(61) |
摘要: &script type=&text/javascript&&var table = document.createElement(&table&);table.border = 1;table.width = &100%&;var tbody = document.createElement(&tbody&);table.appendChild(tbody);tbody.insertRow(0);tbody.rows[0].insertCell(0);tbody.rows[0].cells[0].ap
super-d2 阅读(63) |
摘要: View Code &script type=&text/javascript&& //动态外链css function loadStyles(url){ var link = document.createElement(&link&); link.rel = &stylesheet&; link.type = &text/css&; link.href = var head = document.getElementByTagName(&head&)[0]; head.
super-d2 阅读(63) |
摘要: View Code &script type=&text/javascript&& //动态加载外链js function loadScript(url){ var script = document.createElement(&script&); script.type = &text/javascript&; script.src = document.body.appendChild(script); } loadScript(&client.js&); //动态创建非外链js fun
super-d2 阅读(72) |
摘要: 向文档中逐个逐个的添加元素是非常影响网页性能的,使用代码片段可以优化添加元素的效率,也可以优化网页的性能,具体的实现如下:View Code &!DOCTYPE HTML&&html&&head&&meta charset=&utf-8& /&&title&js性能优化&/title&&/head&&body& &ul id=&myList&&&/ul&&/body&&script type=&text/ja
super-d2 阅读(143) |
摘要: 最简单直接的方式:View Code &script type=&text/javascript&&var person = new Object();person.name = &xx&;person.age = 29;person.sayName = function(){ return this.}console.log(person.sayName());&/script&工厂模式创建:
super-d2 阅读(69) |
摘要: js中的call()函数和apply()函数的作用是用于指定作用域和传参用于传参,请看以下代码:&script type=&text/javascript&&function sum(num1,num2){ return num1 + num2;}function callSum1(num1,num2){ return sum.apply(this,arguments);}function callSum2(num1,num2){ return sum.apply(this,[num1,num2]);}console.log(callSum1(10,10));/
super-d2 阅读(691) |
摘要: &script type=&text/javascript&&//this是函数在执行时所处的作用域window.color = &red&;var o = {color:&blue&};function sayColor(){ console.log(this.color);//red}o.sayColor = sayCo.sayClor();//blue&/script&
super-d2 阅读(170) |
摘要: 代码如下:&script type=&text/javascript&&//作为值的函数function createComparisonFunction(propertyName){ return function(object1,object2){ var value1 = object1[propertyName]; var value2 = object2[propertyName]; if(value1&value2){ return -1; }else if(value1&value2){ ...
super-d2 阅读(32) |
摘要: 对于js解析器来说,函数声明与函数表达式其实有区别的,其区别在于,解析器会先读取函数声明,使其可以再代码的任何位置可以访问:&script type=&text/javascript&&console.log(sum(1,2));function sum(num1,num2){ return num1 + num2;}&/script&上面的代码是正确的,但是如果改成以下这样就是错误的:&script type=&text/javascript&&console.log(sum(1,2));var sum = func
super-d2 阅读(77) |
摘要: js中函数是对象,函数名实际上是指向函数对象的指针:有三种构建函数的方式,其代码如下:&script type=&text/javascript&&function sum(num1,num2){ return num1 + num2;}var sum1 = function(num1,num2){ return num1 + num2; }var sum2 = new Function(&num1&,&num2&,&return num1 + num2&);&/script&
super-d2 阅读(50) |
摘要: splice()可谓js数组操作中最强大的方法了,利用它可以实现:插入、删除、替换功能。返回值为原数组中删除的项,如果没有删除则返回值为空,它会改变原数组。下面来看看实现:&script type=&text/javascript&&var colors = [&red&,&green&,&blue&];//删除var removed = colors.splice(0,1);//从位置0开始删除1项console.log(colors);//输出:green,blueconsole.log(remov
super-d2 阅读(92) |
摘要: slice()方法主要是拿来复制用的,可以传入1或者2个参数,如果传入两个,表示复制从第一个参数到第二个参数为止的数组项,但不包括最后一项;如果传入一个参数,则表示复制从该位置到数组结尾的数组项。如下面代码:&script type=&text/javascript&&var colors = [&red&,&green&,&blue&,&white&];var son1 = colors.slice(1);console.log(son1);//输出:green,blue ,whi
super-d2 阅读(848) |
摘要: &script type=&text/javascript&&var colors = [&red&,&green&,&blue&];var colors2 = colors.concat(&yellow&,[&black&,&brown&]);console.log(colors);console.log(colors2);&/script&
super-d2 阅读(50) |
摘要: 1.翻转数组:&script type=&text/javascript&&var values = [1,2,3,4,5];values.reverse();console.log(values);&/script&2.数组倒序排序:&script type=&text/javascript&&function compare(value1,value2){ return value2 - value1;}var values = [0,1,5,10,15];values.sort(compare);console.
super-d2 阅读(91) |
摘要: 1.使用push(xx)结合shift():&script type=&text/javascript&&var colors = new Array();var count = colors.push(&red&,&green&);console.log(count);count = colors.push(&blue&);console.log(count);var item = colors.shift();console.log(item);console.log(colors.length);
super-d2 阅读(2823) |
摘要: &script type=&text/javascript&&var colors = new Array();var count = colors.push(&red&,&green&);console.log(count);count = colors.push(&blue&);console.log(count);var item = colors.pop();console.log(item);console.log(colors.length);&/script&push()调用后
super-d2 阅读(230) |
摘要: js中构造对象有两种方法,一种是使用new操作符后面跟Object构造函数:方法如下:var dog = new Object();dog.name = &xiaobai&;dog.age = 33;也可以使用字面量的方式,方法如下:var dog = { name:&xiaobai&, age:33}或者:var dog = { &name&:&xiaobai&, &age&:33}
super-d2 阅读(2735) |
摘要: js具有垃圾收集机制,但是有时候我们需要通过解除引用来优化内存使用,例如下面的:&script type=&text/javascript&&function createDog(){ var localDog = new Object(); localDog.name = return localD}var dogInstance = createDog(&xiaobai&);dogInstnace =&/script&虽然,在函数createDog()执行完毕后,局部变量对象被消耗,从而在函数体内
super-d2 阅读(2623) |
摘要: 大家都知道,js中有作用域链的概念。刚刚开始的时候,我也不明白为什么js语言的设计者,要这么做?那时候我也想,直接像java或者c语言中那样有级块作用域多好呀!!for (int j = 0; j&integers. j++){ int i = integers[j];}System.out.println(i);//出错!!那样写js时候就不会这么麻烦要考虑那么多作用域链的问题了,但是,反思过后,我发现原来这么做也是有它的道理在这个里面的。在js中,我们使用函数来定义对象,如:function Class1(name,age){ this.name = ...
super-d2 阅读(89) |
摘要: &script type=&text/javascript&&var dog1 = &xiaobai&;console.log(typeof dog1 == &string&);//trueconsole.log(dog1 instanceof String);//false//假如var dog2 = new String();console.log(typeof dog2);//Objectconsole.log(dog2 instanceof String);//trueconsole.log(dog2.constr
super-d2 阅读(541) |
摘要: 要理解函数的传参机制,首先,我们首先就要弄清楚的就是js数据类型的存储机制和变量复制的方式,上文中:js中为什么不能为值类型的变量动态添加属性呢?这里已经讨论过了,这里不再累赘,接着我们来讨论下,js的变量复制请看以下代码:&script type=&text/javascript&&var int1 = 7;var int2 = int1;console.log(int1+&\n&+int2);/*输出**7*7*/&/script&在看:&script type=&text/javascript&&g
super-d2 阅读(41294) |
摘要: 请看一下代码:&script&var dog = new Object();dog.name=&xiaobai&;console.log(dog.name);//控制台输出:xiaobai&/script&然后在看:&script&var name = &xiaobai&;name.sex=&male&;console.log(name.sex);//控制台输出:undefined&/script&为什么会出现这种情况呢?关键还是在于语言设计上面,js语言设计方面,对于基本的数据类型如:
super-d2 阅读(3043) |
摘要: js中没有重载机制,但是我们可以模仿重载,利用的就是arguments这个数组,它会将我们的参数都转换成数组,下面模仿一个根据参数个数实现的重载,当然你也可以利用参数类型实现重载,实现原理也都是差不多,但是简单的例子跟好说明问题:&script type=&text/javascript&&function addMethod(){ if(arguments.length ==1){ return arguments[0] + 10; }else if(arguments.length ==2){ return arguments[0] + argume...
super-d2 阅读(1212) |
摘要: 匿名函数:没有函数名称的函数;这就是匿名函数:function(argument1,argument2){}闭包:一个可以使用另外一个函数作用域中的变量的函数。如下面的代码函数b就是闭包,但是这个前提是:当函数a的内部函数b被函数a外的一个变量引用的时候,就创建了一个我们通常所谓的“闭包”。意思是说b要变成闭包的话,就必须被外包所引用,即c引用:&script type=&text/javascript&&function a(){ var i=1; function b(){ ++i; }}var c=a();ale..
super-d2 阅读(13857) |
摘要: js是与很多编程语言不同它没有级块作用域这么一个概念,其变量的作用域是以声明和函数来区分的,即var和function,也就是说只要在函数里面声明了var那么该声明的变量的作用域只能在其所在的函数范围内,请看以下的示例:&script type=&text/javascript&&var a=&aa&;function tester(){ alert(a); a =&bb&; alert(a);}tester();&/script&大家猜猜输出的结果是什么,估计很多人会说:aa、bb;但是输入的结
super-d2 阅读(629) |
摘要: 关于js中target与currentTarget的区别的关键在于他们所处在的事件流的阶段是不一样的,target处于事件流的目标阶段,currentTarget处理事件流的捕获、处于目标阶段和冒泡阶段。只有当他们同事处于目标阶段的时候他们的指向才是一样的,请看以下代码:&!DOCTYPE HTML&&html&&head&&meta charset=&utf-8& /&&title&js性能优化&/title&&/head&&body& &div id=&out
super-d2 阅读(1172) |
摘要: 大学整个生涯机乎都是在搞学校的项目和实习中度过的: 主要做的几个项目现在都好几个上线了(心里面感觉也挺爽): 1》 维生数工作室官网(已经上线),主要技术(flash as3+xml); 整个项目由三个人负责,我主要负责页面导航部分,相当于每个人都做一个元件,然后每个元件提供一个可以被外面的元件或舞台操纵的方法,按现在的理解一个就是一个类的一个对外的接口吧,但当时也不大清楚状况,觉得挺神奇的,现在看来觉得其实也没有什么; 链接:http://home.gdutonline.com/ ps:那时候小弟才刚刚学编程,能够搞成这样子也算不错了; 2》广东工...
super-d2 阅读(153) |
摘要: &abbr&缩写词,用于将内联文本标记为缩写词。在许多的浏览器中,将鼠标悬停在这种文本上会显示未采用缩写方式的版本如: &abbr title=&et cetera&&etc.&/abbr&&acronym&首字母缩写词,用于将内联文本标记为首字母缩写词。在许多浏览器中,将鼠标悬停在这种文本上会显示未采用首字母缩写方式的版本。 &acronym title=&World Wide Web&&WWW&/acronym&&address&建立页面的联系信息。&addre
super-d2 阅读(198) |
摘要: 最近上微博,查看一下源代码,看到新版微博是这么处理Logo的html:css对于这种处理的方式个人不敢苟同。一般处理logo无非是两种方式:(1) &div class=&logo&&&a href=&/&&&/a&&/div&和(2)&a href=&/&&&img src=&logo.gif& alt=&logo& /&&/a&考虑一种情况在网络非常差的情况下面:对于第一种:假如说css下载失败,logo所在
super-d2 阅读(242) |
摘要: 1.为了有效性验证2.决定浏览器渲染模式(告诉浏览器使用那种规范来解析网页):(1)严格模式.(2)混杂模式;例如:ie6及其以下浏览器,在每天dtd定义时候,盒子模型采用非标准的,但在有DTD定义的时候则会表现为标准的模型。
super-d2 阅读(47) |
摘要: 前段时间有朋友问:拖拽一个容器(比如说div,姑且命名为‘file’)到当前页面中任意的一个div(命名为'folder')里边,然后删除当前节点。效果就是把一个文件放到一个文件夹里,跟windows里扔一个文件到文件夹一样如何实现?....................................华丽的分隔线......................................代码实现如下:View Code 1 &!DOCTYPE html PUBLIC &-//W3C//DTD XHTML 1.0 Transitional//EN&
super-d2 阅读(677) |}

我要回帖

更多关于 钻戒id?o 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信