配合javascript动态操作表头
这段时间在用displayTag, 它有很多好用的功能,俺也不就在这赘述,当然也有几个不方便的地方. 比如求和后"%"的显示等与求和相关的缺点, 这里先介绍一个缺点并把我从网上整理出来的解决方案也一并帖出. 问题是这样的: 由于业务要求, 当用户鼠标位于表中某一列的标头时, 在这个表头"动画"地显示这列的简介. 先看下做出来的效果:
若不用displaytag的话,这个没什么困难的, 直接加mouseOver事件就OK了.可现在用dispalyTag后, 在<display:column ..>中加不了onMouseOver的响应事件,即便是能加这个响应事件的话, 也是加到了列上, 没法定位到当前列的表头.
怎么解决?
写DisplayTag的装饰器应该可以,但太麻烦.
在JSP上做文章吧.
那只能用JavaScript了, 以前用Dojo时有这个效果,但仅仅为了这么个功能引入Dojo显然很不划算.
自己写一个JavaScript方法.
先在网上搜下看看有没有类似的解决方法, 终于找到一个:
http://www.devx.com/webdev/10MinuteSolution/31020/0/page/3,看样子行, 于是就以他的方法为出发点来写.还有一哥们,他想改写displatTag的部分源码以支持那些常见的JavaScript事件.
http: //jira.codehaus.org/browse/DISPL-187. 这个牛人的问题咱们以后再研究.
回到咱们的主题上来. 以他的RowHandlers.js为出发点怎么写? 分为三步:
1, 定位到目标表头.也就是说让浏览器知道用户的鼠标放到了表头.
2, 触发mouseOver事件,
3, 在事件里定位说明
先看第一步, 这个是有些麻烦,若不是用了FireFox里的firebug来跟踪查看DOM,这一步就写不出来. 写了改,改了再调了N遍后, 终于成功了:
var theadCells = document.getElementById(tableID).getElementsByTagName("thead")[0].rows[0].cells;
这个theadCells就是HTML中表头上的一系列<tr></tr>. tableID是传来的参数, 毕竟displayTag还没"干尽杀绝", 让咱们程序员得到生成table的id.
再看第二步, 这个没什么可说的, 直接按人家方法来就行了:
cell.onmouseover = function () {
相关文档:
var a = document.getElementById("left");
var b = document.getElementById("right");
if(a.scrollHeight < b.scrollHeight)
{
a.style.height = b.scrollHeight+”px”;
} &nb ......
本文转自:http://bbs.51js.com/viewthread.php?tid=85083&extra=page%3D1
在自定义的函数中,如果要向函中提交一些参数,习惯性地大家会在函数中定义
例:<script>
function test(a,b){
alert(a);
alert(b);
}
test("第一次" ......
1.如何获取表单<select>域的选择部分的文本?
<form name="a">
<select name="a" size="1" onchange="_sel(this)">
<option value="a">1</option>
<option value="b">2</option>
<option value="c">3</option>
</select>
</form&g ......
ADF 11g不再支持Onclick等JavaScript,而是采用<af:clientListener>来实现诸如删除某条记录的提示框。
实现方式如下:
function confirmDelete() {
if (confirm('Are you sure you want to delete this record?'))
return true;
else
return false;
}
<af:commandLink actionListener="# ......
最近在学习javascript,对于如何运行调试却不了解。以为在记事本中编辑好文件后保存为htm文件,然后在浏览器中打开就可以了,但我试了多次都不成功,后来终于发现原来我在记事本中编辑保存的文件的后缀名为“.txt”。
解决方法:“文件夹选项&rdqu ......