在使用tabs这样的控件时,发现dwr中的tabs非常简单,代码非常少,
所以就决定用这个了。
不过问题出来了。当我在tabs不是第一个中有按钮的时候,点击查询等应用,就会自动跳到第一个,非常不适用,所以决定修改
,使用点击非第一个里面的按钮能继续在原地方
--------简单修改后的tabs.js如下----------------------
function Tabs() { }
//Tabs.removeSelectedRegex = new RegExp("(^|\\s)linkSelected(\\s|$)", 'g');
//Tabs.removeUnselectedRegex = new RegExp("(^|\\s)linkUnselected(\\s|$)", 'g');
/**
*
*/
Tabs.init = function(tabListId) {
Tabs.tabLinks = document.getElementById(tabListId).getElementsByTagName("A");
var link, tabId, tab;
var hasTabId="false";
var oldTabId = getTabCookie("tabId");
for (var i = 0; i < Tabs.tabLinks.length; i++)
{
link = Tabs.tabLinks[i];
tabId = link.getAttribute("tabId");
if (!tabId) alert("Expand link does not have a tabId element: " + link.innerHTML);
tab = document.getElementById(tabId);
if (!tab) alert("tabId does not exist: " + tabId);
if (
tabId==oldTabId)
{
hasTabId="true";
tab.style.display = "block";
link.className = "linkSelected " ;//+ link.className.replace(Tabs.removeUnselectedRegex, '');
}
else {
tab.style.display = "none";
link.className = "linkUnselected " ;//+ link.className.replace(Tabs.removeSelectedRegex, '');
}
link.onclick = function() {
var tabId = this.getAttribute("tabId");
setTabCookie("tabId",tabId);
for (var i = 0; i < Tabs.tabLinks.length; i++)
{
var link = Tabs.tabLinks[i];
var loopId = link.getAttribute("tabId");
if (loopId == tabId)
{
document.getElementById(loopId).style.display = "block";
link.className = "linkSelected " ;//+ link.className.replace(Tabs.removeUnselectedRegex, '');
}
else
{
document.getElementById(loopId).style.display = "none";
link.className = "linkUnselected " ;//+ link.className.replace(Tabs.removeSelectedRegex, '');
}
}
if (this.blur) this.blur();
return false;
}
}
if(hasTabId=="false")
{
link = Tabs.tabLinks[0];
tabId = link.getAttribute("tabId");
if (!tabId) alert("Expand link does not have a tabId element: " + link.innerHTML);
tab = document.getElementById(tabId);
if (!tab) alert("tabId does not exist: " + tabId);
tab = document.getElementById(tabId);
tab.style.display = "block";
link.className = "linkSelected " ;//+ link.className.replace(Tabs.removeUnselectedRegex, '');
}
}
function setTabCookie(name,value)
{
var exp = new Date();
exp.setTime (exp.getTime()+3600000000);
document.cookie = name + "=" + value + "; expires=" + exp.toGMTString();
}
function getTabCookie(name)
{
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen)
{
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0)
break;
}
return null;
}
//cookie的相关函数
function getCookieVal (offset)
{
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1) endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
分享到:
相关推荐
DWR(Direct Web Remoting)是一种Java库,它允许JavaScript在客户端与服务器端进行直接的交互,从而实现在Web应用程序中的Ajax功能。DWR的主要目标是简化前后端的数据交换,提高用户体验,使得Web应用能够像桌面...
DWR(Direct Web Remoting)是一种Java库,用于在Web应用程序中实现JavaScript和服务器端Java代码之间的双向通信。DWR允许开发者在不刷新整个页面的情况下更新网页部分,从而提供了类似于桌面应用的用户体验。这个...
这个“DWR中文帮助文档”是为开发者提供详细指南和技术支持的资源,尤其对于中文使用者来说,它是一个极其宝贵的工具。 文档可能涵盖了以下几个核心知识点: 1. **DWR的基本概念**:DWR的核心是通过AJAX技术实现...
在《DWR中文文档v0.9》中,读者可以找到关于如何配置DWR、创建DWR接口、调用远程方法、处理异常、调试DWR应用等全面的教程和示例。这份文档不仅适合初学者,也对有经验的开发者有很高的参考价值,可以帮助他们更好地...
### DWR中处理List知识点详解 #### 一、DWR简介 DWR(Direct Web Remoting)是一种简化Ajax开发的框架,它使得JavaScript能够直接调用服务器端的Java方法,从而实现更简单、更直接的远程调用。通过DWR框架,开发者...
- **DWR与WebWork**:特定的配置和脚本导入机制支持WebWork与DWR的结合使用。 - **DWR与Acegi**:解决Acegi安全框架下DWR的权限问题。 #### DWR中的JavaScript - **简单的回调函数**:介绍如何使用DWR进行异步调用...
- **集成DWR**: 将DWR框架加入到项目中,通常通过将DWR的jar包添加到项目的类路径中完成。 - **配置文件**: 编辑`web.xml`和`dwr.xml`文件,设置DWR的工作模式和各种参数。 ##### 1.2 HelloWorld示例 - **配置文件...
DWR(Direct Web Remoting)是一种Java库,用于在Web应用程序中实现实时的JavaScript到服务器端Java对象的通信。这个“DWR中文教程(外带DWR包)”为初学者提供了一个全面的入门指南,帮助理解并掌握DWR的基本概念和...
4. **添加DWR依赖**:将下载的DWR库文件添加到项目的类路径中。 5. **编写Java服务端代码**: - 创建一个简单的Java类,例如`HelloWorldService`,定义一个公开的方法,如`sayHello()`。 - 使用DWR注解标记该方法...
DWR(Direct Web Remoting)是一种Java库,用于在Web应用程序中实现实时的、双向的JavaScript和服务器端代码交互。这个技术允许开发者在客户端浏览器上执行服务器端的方法,就像它们是本地JavaScript函数一样,极大...
2. **配置DWR**:教程会指导你如何将DWR添加到你的Web项目中,包括在`web.xml`文件中配置DWR的Servlet,以及在项目的类路径下放置必要的配置文件。 3. **创建Java接口与类**:学习如何定义可被JavaScript调用的Java...
dwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwr
6. **批量调用与回调**:DWR支持批量调用多个服务器方法,并且可以在一个回调函数中处理所有结果。这对于处理大量数据或执行多个操作的场景非常有用。 7. **DWR的事件机制**:DWR提供了一套事件监听系统,允许你在...
DWR(Direct Web ...通过“DWR中文官方文档”,开发者可以学习到如何在实际项目中有效利用DWR,提高Web应用的交互性和响应速度。文档涵盖了安装、配置、使用示例、API参考等多个方面,是学习和使用DWR的宝贵资源。
1. **引入DWR库**:在Web应用中添加DWR的JAR文件,并在Web.xml中配置DWR的Servlet。 2. **创建Java接口**:定义要在客户端使用的Java接口,这些接口将被DWR暴露给JavaScript。 3. **生成配置文件**:使用DWR生成器...
DWR的实例war文件通常包含了一个预配置的DWR应用,展示了如何在实际项目中集成和使用DWR。通过分析这个war文件,开发者可以学习如何配置DWR的XML配置文件(dwr.xml),以及如何创建可从JavaScript调用的Java方法。 ...
1. **配置与集成**:DWR的配置主要包括在Web应用的`web.xml`中添加过滤器和Servlet,以及在服务器端创建`dwr.xml`配置文件,用于定义哪些Java类和方法可以被JavaScript访问。此外,DWR 2.0支持Spring框架的集成,...