`
zhang20084
  • 浏览: 1922 次
  • 来自: ...
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

dwr中tabs的修改(支持记忆)

阅读更多
在使用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中文文档DWR

    DWR(Direct Web Remoting)是一种Java库,它允许JavaScript在客户端与服务器端进行直接的交互,从而实现在Web应用程序中的Ajax功能。DWR的主要目标是简化前后端的数据交换,提高用户体验,使得Web应用能够像桌面...

    DWR中文文档.pdfDWR中文文档.pdf

    DWR(Direct Web Remoting)是一种Java库,用于在Web应用程序中实现JavaScript和服务器端Java代码之间的双向通信。DWR允许开发者在不刷新整个页面的情况下更新网页部分,从而提供了类似于桌面应用的用户体验。这个...

    DWR中文帮助文档(最好的DWR中文帮助文档)

    这个“DWR中文帮助文档”是为开发者提供详细指南和技术支持的资源,尤其对于中文使用者来说,它是一个极其宝贵的工具。 文档可能涵盖了以下几个核心知识点: 1. **DWR的基本概念**:DWR的核心是通过AJAX技术实现...

    DWR中文文档v0.9PDF

    在《DWR中文文档v0.9》中,读者可以找到关于如何配置DWR、创建DWR接口、调用远程方法、处理异常、调试DWR应用等全面的教程和示例。这份文档不仅适合初学者,也对有经验的开发者有很高的参考价值,可以帮助他们更好地...

    DWR中处理List

    ### DWR中处理List知识点详解 #### 一、DWR简介 DWR(Direct Web Remoting)是一种简化Ajax开发的框架,它使得JavaScript能够直接调用服务器端的Java方法,从而实现更简单、更直接的远程调用。通过DWR框架,开发者...

    DWR2.0中文文档

    - **DWR与WebWork**:特定的配置和脚本导入机制支持WebWork与DWR的结合使用。 - **DWR与Acegi**:解决Acegi安全框架下DWR的权限问题。 #### DWR中的JavaScript - **简单的回调函数**:介绍如何使用DWR进行异步调用...

    DWR中文文档(pdf)

    - **集成DWR**: 将DWR框架加入到项目中,通常通过将DWR的jar包添加到项目的类路径中完成。 - **配置文件**: 编辑`web.xml`和`dwr.xml`文件,设置DWR的工作模式和各种参数。 ##### 1.2 HelloWorld示例 - **配置文件...

    DWR中文教程(外带DWR包)

    DWR(Direct Web Remoting)是一种Java库,用于在Web应用程序中实现实时的JavaScript到服务器端Java对象的通信。这个“DWR中文教程(外带DWR包)”为初学者提供了一个全面的入门指南,帮助理解并掌握DWR的基本概念和...

    DWR中文文档 (DWR 2.0)

    4. **添加DWR依赖**:将下载的DWR库文件添加到项目的类路径中。 5. **编写Java服务端代码**: - 创建一个简单的Java类,例如`HelloWorldService`,定义一个公开的方法,如`sayHello()`。 - 使用DWR注解标记该方法...

    DWR中文文档 ,非常详细

    DWR(Direct Web Remoting)是一种Java库,用于在Web应用程序中实现实时的、双向的JavaScript和服务器端代码交互。这个技术允许开发者在客户端浏览器上执行服务器端的方法,就像它们是本地JavaScript函数一样,极大...

    dwr的中文简明教程下载

    2. **配置DWR**:教程会指导你如何将DWR添加到你的Web项目中,包括在`web.xml`文件中配置DWR的Servlet,以及在项目的类路径下放置必要的配置文件。 3. **创建Java接口与类**:学习如何定义可被JavaScript调用的Java...

    dwr dwrdwr

    dwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwrdwr dwr

    DWR中文文档

    6. **批量调用与回调**:DWR支持批量调用多个服务器方法,并且可以在一个回调函数中处理所有结果。这对于处理大量数据或执行多个操作的场景非常有用。 7. **DWR的事件机制**:DWR提供了一套事件监听系统,允许你在...

    DWR中文官方文档-打包下载

    DWR(Direct Web ...通过“DWR中文官方文档”,开发者可以学习到如何在实际项目中有效利用DWR,提高Web应用的交互性和响应速度。文档涵盖了安装、配置、使用示例、API参考等多个方面,是学习和使用DWR的宝贵资源。

    dwr中文文档pdf格式

    1. **引入DWR库**:在Web应用中添加DWR的JAR文件,并在Web.xml中配置DWR的Servlet。 2. **创建Java接口**:定义要在客户端使用的Java接口,这些接口将被DWR暴露给JavaScript。 3. **生成配置文件**:使用DWR生成器...

    DWR3.0.jar、DWR.war和DWR2.0中文说明文档

    DWR的实例war文件通常包含了一个预配置的DWR应用,展示了如何在实际项目中集成和使用DWR。通过分析这个war文件,开发者可以学习如何配置DWR的XML配置文件(dwr.xml),以及如何创建可从JavaScript调用的Java方法。 ...

    DWR2.0 中文手册

    1. **配置与集成**:DWR的配置主要包括在Web应用的`web.xml`中添加过滤器和Servlet,以及在服务器端创建`dwr.xml`配置文件,用于定义哪些Java类和方法可以被JavaScript访问。此外,DWR 2.0支持Spring框架的集成,...

Global site tag (gtag.js) - Google Analytics