Jul 9
近几天地为了实现拖动管理树形栏目而研究了Ext2,这两天一直查资料以及看API,终于完成功能。


<link rel="stylesheet" type="text/css" href="../../extjs/resources/css/ext-all.css" />
<script type="text/javascript" src="../../extjs/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../../extjs/ext-all.js"></script>
<script src='../../js/ajax/prototype_1.5.0_stbale.js' language="javascript"></script>

Jul 7
======================相关方法与属性========================

Ext.data.Tree
继承自Observable,用于存放树装的数据结构

方法
Tree( [Node root] )
以root为根构造Ext.data.Tree对象

getNodeById( String id ) : Node
由指定id得到节点

getRootNode() : Node
得到根节点,由属性root得到更方便

setRootNode( Node node ) : Node
设置根节点

事件有
append : ( Tree tree, Node parent, Node node, Number index )
beforeappend : ( Tree tree, Node parent, Node node )
beforeinsert : ( Tree tree, Node parent, Node node, Node refNode )
beforemove : ( Tree tree, Node node, Node oldParent, Node newParent, Number index )
beforeremove : ( Tree tree, Node parent, Node node )
insert : ( Tree tree, Node parent, Node node, Node refNode )
move : ( Tree tree, Node node, Node oldParent, Node newParent, Number index )
remove : ( Tree tree, Node parent, Node node )


Ext.data.Node
节点
属性
attributes : Object
节点属性集

childNodes : Array
子节点

firstChild : Node
第一个子节点

id : String
id

lastChild : Node
最后一个子节点

nextSibling : Node
下一个兄弟节点

parentNode : Node
父节点

previousSibling : Node
前一个兄弟节点

Node( Object attributes )
构造节点

appendChild( Node/Array node ) : Node
将node做为附加在当前节点的lastChild之后


bubble( Function fn, [Object scope], [Array args] ) : void
由当前节点开始一直上溯到根节点,对于每个节点应用fn,直到有一个fn返回假为止


cascade( Function fn, [Object scope], [Array args] ) : void
由当前节点开始一下对每个子孙节点应用fn.直到返回false为止

contains( Node node ) : Boolean
当前节点是node的祖先节点?

eachChild( Function fn, [Object scope], [Array args] ) : void
基本同cascade,但只针对子节点应用fn

findChild( String attribute, Mixed value ) : Node
在子节点中找到第一个有属性attribute值为value的节点

findChildBy( Function fn, [Object scope] ) : Node
在子节点中找到第一个应用fn返回真的节点

getDepth() : Number
得到当前节点深度,根节点深度为0

getOwnerTree() : Tree
得到当前节点的Tree对象

getPath( [String attr] ) : String
得到当前节点的路径,默认attr为id

indexOf( Node node ) : Number
node在当前节点的子节点中的位置

insertBefore( Node node, Node refNode ) : Node
在参考节点refNode之前插入node节点

isAncestor( Node node ) : Boolean
当前节点是node的祖先节点?

isFirst() : Boolean
isLast() : Boolean
当前节点是父节点的第一/最后一个节点

isLeaf() : Boolean
是叶节点?指不含子节点

item( Number index ) : Node
第index个子节点

removeChild( Node node ) : Node
移除node子节点

replaceChild( Node newChild, Node oldChild ) : Node
用newchild替换oldchild子节点

sort( Function fn, [Object scope] ) : void
用指定的fn排序子节点

Jul 6
1
<i>javascript</i>基本语法

1)
读未声明的变量会产生错误。写未声明的变量会是<i>javascript</i>环境自动产生一个全局变量。

2)
对于完全等同“===”,两个null或者两个undefined是等同的;但null与undefined是不等同的。

3)
对于相等“==”, null与undefined是相等的。若值与对象比较,核心语言内部类会尝试用valueof()转换,再尝试用 toString()转换。就是说valueof()会比toString()有更高的优先级。但规则不绝对,例如Date类,它会首先尝试用 toString()转换。当类的这两个方法实现不一致时,在要进行类型转换时指定具体的实现方法比较安全。

4)
在比较运算中,若一个对象或值被转换成NaN(Not a Number),则永远返回false。

5)
in可以检查指定字符串是否是一个对象的基本属性或方法名称;instanceof运算符返回左边的对象是否右边类的一个实例;delete可以删除一个属性,它不会影响到属性关联的对象的生存,若该属性不存在会返回true;[]可以以字符串的方式存取对象的属性。

Jul 5


<form name="form" action="" onsubmit="return check();">
<input type=text name=str>
<input type=submit>
<form>
Jul 5
自定以右键菜单。

<HTML><HEAD><TITLE>右键菜单的淡入淡出效果</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<SCRIPT language=JavaScript>
<!-- // RightClickMenu
var intDelay=10; //设置菜单显示速度,越大越慢
var intInterval=5; //每次更改的透明度
function showmenuie5(){
        var rightedge=document.body.clientWidth-event.clientX
        var bottomedge=document.body.clientHeight-event.clientY
        if (rightedge<ie5menu.offsetWidth)
            ie5menu.style.left=document.body.scrollLeft+event.clientX-ie5menu.offsetWidth
        else
            ie5menu.style.left=document.body.scrollLeft+event.clientX
        if (bottomedge<ie5menu.offsetHeight)
            ie5menu.style.top=document.body.scrollTop+event.clientY-ie5menu.offsetHeight
        else
            ie5menu.style.top=document.body.scrollTop+event.clientY
        ie5menu.style.visibility="visible"
        //ie5menu.style.visibility=""
        ie5menu.filters.alpha.opacity=0
        GradientShow()
        return false
}
function hidemenuie5(){
        //ie5menu.style.visibility="hidden"
        GradientClose()
}
function highlightie5(){
        if (event.srcElement.className=="menuitems"){
            event.srcElement.style.backgroundColor="highlight"
            event.srcElement.style.color="white"
        }
}
function lowlightie5(){
        if (event.srcElement.className=="menuitems"){
            event.srcElement.style.backgroundColor=""
            event.srcElement.style.color="#000000"
        }
}
function jumptoie5(){
        if (event.srcElement.className=="menuitems"){
            if (event.srcElement.url != ''){
                if (event.srcElement.getAttribute("target")!=null)
                    window.open(event.srcElement.url,event.srcElement.getAttribute("target"))
                else
                    window.location=event.srcElement.url
            }
        }
}

function GradientShow() //实现淡入的函数
{
    ie5menu.filters.alpha.opacity+=intInterval
    if (ie5menu.filters.alpha.opacity<100) setTimeout("GradientShow()",intDelay)
}
    
function GradientClose() //实现淡出的函数
    {
    ie5menu.filters.alpha.opacity-=intInterval
    if (ie5menu.filters.alpha.opacity>0) {
     setTimeout("GradientClose()",intDelay)
     }
    else {
     ie5menu.style.visibility="hidden"
     }
}

function ChangeBG() //改变菜单项的背景颜色,这里的两种颜色值可以改为你需要的
{
    oEl=event.srcElement
    if (oEl.style.background!="navy") {
        oEl.style.background="navy"
    }
    else {
        oEl.style.background="#cccccc"
    }
}
// -->
</SCRIPT>

<STYLE type=text/css>
.cMenu {
    FILTER: alpha(opacity=0);BACKGROUND-COLOR: #D6D3CE;BORDER-BOTTOM: #666666 2px solid; BORDER-LEFT: #E4E4E4 2px solid; BORDER-RIGHT: #666666 2px solid; BORDER-TOP: #E4E4E4 2px solid; COLOR: #000000; CURSOR: default; FONT-SIZE: 9pt; color:#000000;FONT-WEIGHT: normal; LINE-HEIGHT: 20px; POSITION: absolute; VISIBILITY: hidden; WIDTH: 110px
}
.menuitems {
    font-size:9pt;
    MARGIN: 2px;
    PADDING-BOTTOM: 0px;
PADDING-LEFT: 15px;
PADDING-RIGHT: 3px;
PADDING-TOP: 0px;
}
</STYLE>

<META content=" Microsoft FrontPage 4.0" name=GENERATOR>
</HEAD>
<BODY>
<OBJECT classid=CLSID:8856F961_340A_11D0_A96B_00C04FD705A2 height=0 id=WebBrowser width=0>
</OBJECT>
<RIGHTCLICK><!--[if IE]>
<DIV class=cMenu id=ie5menu onclick=jumptoie5() onmouseout=lowlightie5()
onmouseover=highlightie5()>

<DIV class=menuitems url="javascript:click_obj(0)">后退</DIV>
<DIV class=menuitems url="javascript:click_obj(1)">前进</DIV>
<DIV class=menuhr><hr style="width:100%"></DIV>
<DIV class=menuitems url="javascript:click_obj(2)">刷新</DIV>
<DIV class=menuitems url="javascript:click_obj(3)">加入收藏夹</DIV>
<DIV class=menuitems url="javascript:click_obj(4)">查看源文件</DIV>
<DIV class=menuhr><hr style="width:100%"></DIV>
<DIV class=menuitems url="javascript:click_obj(5)">属性</DIV>

</DIV>
<![endif]-->

<SCRIPT language=JavaScript>
<!--
function click_obj(id){
    switch(id){
        case 0:    
            history.back()
            break
        case 1:
            history.forward()
            break
        case 2:
            window.location.reload()
            break
        case 3:
            window.external.AddFavorite(location.href, document.title)
            break
        case 4:
            window.location = "view-source:" + window.location.href
            break
        case 5:
            document.all.WebBrowser.ExecWB(10,1)
            break
    }
}

if (document.all&&window.print){
    ie5menu.className="cMenu"
    document.oncontextmenu=showmenuie5
    document.body.onclick=hidemenuie5
}
//-->
</SCRIPT>
</RIGHTCLICK>
</BODY></HTML>
Pages: 9/10 First page Previous page 4 5 6 7 8 9 10 Next page Final page [ View by Articles | List ]