• 2009-07-20

    JavaScript+jQuery两栏选择控件

    Views: 18002 | No Comments

    两栏选择功能经常用到, 就是有一栏显示可选的数据, 另一栏显示当前已选择的数据. 我包装成一个JavaScript控件, 方便使用. 使用时需要引入两个JavaScript文件, 因为使用了jQuery, 所以还需要引入jQuery的js库文件:

    <script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript" src="TableView.js"></script>
    <script type="text/javascript" src="SelectorView.js"></script>
    

    在HTML文件中写上:

    <div id="sel_div">
    </div>
    
    <script type="text/javascript">
    <!--
    var sel = new SelectorView('sel_div'); // sel_div 是 HTML 节点 id
    sel.src.header = {
    	'id'		: 'Id',
    	'name'		: 'Name',
    	'text'		: 'Text'
    };
    sel.dst.header = {
    	'id'		: 'Id',
    	'name'		: 'Name'
    };
    sel.src.dataKey = 'id';
    sel.dst.dataKey = 'id';
    sel.src.title = '可选';
    sel.dst.title = '已选';
    sel.render();
    
    sel.src.add({id: 1, name: 'Tom', text: 'Tomcat'});
    sel.src.add({id: 2, name: 'Jerry', text: 'Jerrimy'});
    sel.src.add({id: 3, name: 'Jim', text: 'System Engineer'});
    sel.src.add({id: 4, name: 'Lucy', text: 'Lucy & Lily'});
    //-->
    </script>
    

    演示地址: http://www.ideawu.net/person/two-column-selector/two-column-selector.html

    Posted by ideawu at 2009-07-20 16:43:35 Tags:
  • 2008-01-26

    JavaScript 多线程

    Views: 13121 | No Comments

    暂时, 我还不知道在 Firefox 和 IE 浏览器上使用 "JavaScript 多线程" 的方法. 一些资料上说的 setTimeout 和 setTimeInterval 函数可以模拟多线程, 但事实并不是这样. 例如 setTimeout 函数, 如果你在异步执行的代码中进行阻塞, 那么整个页面也将阻塞(表现为页面无法操作, 链接无法点击等). 这说明, setTimeout 只不是在当前线程中插入要执行的代码而已, 并不像其它某些语言中的定时器.

    所谓的并发, 微观上还是串行处理, 只不过对串行处理单元进行分解, 便成了另一层次上的并发. 如果可以, 应该对要处理的事务进行分解.

    Posted by ideawu at 2008-01-26 16:34:49 Tags:
  • 2006-06-23

    基于HTML/JavaScript的本地运行的TiddlyWiki

    Views: 12788 | No Comments

    TiddlyWiki, 仅仅采用 Html + CSS + JavaScript 所组成的一个文件,允许你没有服务器、数据库、ASP或PHP的支持就可以编辑自己的 Wiki 系统。中文化的目的是推进其在中国大陆的使用。

    --- TiddlyWiki中文网站上的介绍。

    昨天朋友介绍的一个好东西。具有保存功能,作为记事本使用不错。到 http://gf.cs.hit.edu.cn/projects/tiddlywiki/ 下载。直接在浏览器中打开html文件。

    Posted by ideawu at 2006-06-23 14:21:52 Tags:
  • 2006-06-13

    开发跨浏览器JavaScript—《Ajax基础教程》笔记

    Views: 15057 | 3 Comments

    1. 通过JavaScript设置元素的样式

    通过元素(Element)的setAttribute()方法设置style属性:

    var testdiv = document.getElementById("testdiv");
    testdiv.setAttribute("style", "font-size:24px;color:red;");
    

    除了IE(Microsoft Internet Explorer),这种方法在当前其它浏览器上都行得通。为了照顾IE,我们可以使用设置不标准的属性---元素style对象的cssText属性。尽管这个属性不是标准的,但得到了广泛的支持(除了Opera):

    var testdiv = document.getElementById("testdiv");
    testdiv.style.cssText = "font-size:24px;color:red;";
    
    • Firefox等浏览器:运行代码,在下面的测试区域查看效果。
    • Firefox等浏览器IE浏览器:,在下面的测试区域查看效果。

    2. 设置元素的class属性

    使用Firefox和Safari之类的浏览器,可以通过元素(Element)的setAttribute()方法设置class属性:

    var testdiv = document.getElementById("testdiv");
    testdiv.setAttribute("class", "cat");
    

    为了照顾IE这个异类,它只认识className属性---在IE中className = class,其它大多数浏览器都忽略className属性。你可以这样做:

    var testdiv = document.getElementById("testdiv");
    testdiv.setAttribute("class", "cat");
    testdiv.setAttribute("className", "cat");
    
    • Firefox等浏览器:运行代码,在下面的测试区域查看效果。
    • Firefox等浏览器IE浏览器:运行代码,在下面的测试区域查看效果。

    这里是测试用的区域:

    测试用的区域。Hello world!

    上面的代码已经在Mozilla Firefox 1.5.0.2,Opera 8.54,Konqueror 3.5.2,IE6 测试通过。

    3. 创建输入元素

    注意document.createElement()和<Element>.setAttribute()方法的顺序:

    var button = document.createElement("input");
    button.setAttribute("type", "reset");
    var testdiv = document.getElementById("testdiv").appendChild(button);
    
    • Firefox等浏览器和IE浏览器:运行代码,在测试区域查看效果。

    4. 向元素增加事件处理

    标准的做法是:

    var testdiv = document.getElementById("testdiv");
    testdiv.setAttribute("onclick", "doFoo();");
    

    除了IE,上面的代码在所有的当前浏览器中都能工作。在IE中必须使用点词法来引用所需的事件处理程序:

    var testdiv = document.getElementById("testdiv");
    testdiv.onclick = function(){doFoo();};
    

    相关资源:

    Posted by ideawu at 2006-06-13 10:27:29 Tags:
|<<<123>>>| 3/3 Pages, 16 Results.