WEB开发网
开发学院网页设计JavaScript grid里用右键来实现功能菜单 阅读

grid里用右键来实现功能菜单

 2009-09-16 00:00:00 来源:WEB开发网   
核心提示: 分析以上代码如下:1、Js代码 //orgCellColor存放点击行的原始颜色值ConRightMenu.orgCellColor="";ConRightMenu.clickRow="";orgCellColor和clickRow分别存储的是点击行的原始

分析以上代码如下:

1、

Js代码

//orgCellColor存放点击行的原始颜色值 
ConRightMenu.orgCellColor = ""; 
ConRightMenu.clickRow = ""; 

orgCellColor和clickRow分别存储的是点击行的原始背景颜色值和点击行的id,前者的作用是右键点击某一行设置了这行的背景值后再右键点击另一行时,把之前的那行的原始背景值再赋值给它;后者是得到点击某行的id值,这在设置右键按钮的事件中有很重要的作用。因为右键后显示的 div的按钮与grid的按钮是不一样的,如果前者的onclick事件也和后者一样执行一个函数的话,那么是不行的。因为grid的按钮执行的函数里用到的event.srcElement等有关event事件的元素都与右键div的按钮的event事件的元素不一样,如果右键div的按钮执行grid 的按钮的函数,就会出错。所以,我们解决方法是执行grid按钮的fireEvent("onclick")方法。这就要求能够取得到右键点击grid那行的按钮元素。通过clickRow得到tr的id,就可以定位到点击grid的那行的每个按钮元素了。可能有些抽象,大家认真看下代码就会明白了。

2、getTrObj()函数得到点击事件的那行tr这个obj。得到它后就可以定位到我们关心的任何东西了。注意这里的:Event.findElement(evt,"tr");和getEventElement()都很好重用。

3、changeClassForTD()用于设置右键某行后的背景颜色,因为右键的行要与其它行区分开来,所以用上背景颜色会比较直观。这里要注意的,右键某行时要把之前右键某行的保存的原始背景色赋值上去,这在前面的第一点的orgCellColor也讨论过了。这里通过 trObj.parentElement.得到tr外面的table元素,再通过table元素的getElementsByTagName("TD") 得到所有的td元素,如果td的背景色是#DCDCDC时则说明它是之前右键的那行,把它赋值为原始的值。这里要注意用了比较的两方都用了 toUpperCase来得到颜色值,还要注意用backgroundColor,而不是background。

上一页  1 2 3 4  下一页

Tags:grid 实现 功能

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接