本帖最后由 airelisa 于 2010-09-06 11:37:05 编辑

解决方案 »

  1.   

    lz先把两种样式分别使用一遍看看是否正确. 如果正确, 再看一下是否是在改变值的时候样式已经载入完成并写入了DOM, 所以改变变量无效. 根据类名来设置样式是最可靠的. 你定义两个类名, 然后在刷新的时候, 后台将类名切换, 可以保证样式的转变
      

  2.   


    你说的初始化和刷新也许就是一个操作
    你的初始化是怎么做的,是页面刚打开的时候就初始化或是onload
    和刷新操作应该是一回事
      

  3.   

    看LZ输出的2个结果 只是disabled去掉了 按钮的class并没有改变 都是gdrkStaticColorLongButtonDis
      

  4.   

    lz先把两种样式分别使用一遍看看是否正确. 如果正确, 再看一下是否是在改变值的时候样式已经载入完成并写入了DOM, 所以改变变量无效.  根据类名来设置样式是最可靠的. 你定义两个类名, 然后在刷新的时候, 后台将类名切换, 可以保证样式的转变两个都是有效的,而且用的就是两个类名啊!
      

  5.   

    你说的初始化和刷新也许就是一个操作
    你的初始化是怎么做的,是页面刚打开的时候就初始化或是onload
    和刷新操作应该是一回事
    没有onload,就是打开页面,再查询刷新页面
      

  6.   

    看LZ输出的2个结果 只是disabled去掉了 按钮的class并没有改变 都是gdrkStaticColorLongButtonDis
    大哥,这个我也知道啊!问题就是不知道 原因啊?而且控件里的class改变了
      

  7.   

    打开页面和你再次查询刷新其实本质是一样的哦,如果你刷新页面用ajax就不同了
      

  8.   

    你说的初始化和刷新也许就是一个操作
    你的初始化是怎么做的,是页面刚打开的时候就初始化或是onload
    和刷新操作应该是一回事
    没有onload,就是打开页面,再查询刷新页面打开页面和你再次查询刷新其实本质是一样的哦,如果你刷新页面用ajax就不同了
    但是我查询出来了值,css里通过通过页面的值进行了判断,把class换了。
      

  9.   

    我怀疑跟那个万恶的浏览器兼容有关系,ie在设置样式的时候就是麻烦,楼主可试下下面的示例代码。<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
        
    <style type="text/css">
    .disabled {
    width: 100px;
    height: 100px;
    background-color: red;
    }
    .enabled {
    width: 100px;
    height: 100px;
    background-color: blue;
    }
    </style>
    <script type="text/javascript">
    var timmer = 0;
    function switch_class(){
    timmer++;
    var div = document.getElementById("switchclass");


    if(timmer % 2 == 1){
    div.setAttribute("class", "enabled");
    div.setAttribute("className", "enabled");
    }
    else {
    div.setAttribute("class", "disabled");
    div.setAttribute("className", "disabled");
    }
    }
    </script>
      </head>
      
      <body>
       <div id="switchclass" class="disabled">
       </div>
       <br/><br/><br/>
        <input type="button" value="switch_class" onclick="switch_class()"/>
      </body>
    </html>
      

  10.   

    刷新后的事实是“class="gdrkStaticColorLongButtonDis"”,这个地方没被正确设置。
    问题就是你的刷新处理不对。把这块讲明白点,或贴代码。
      

  11.   

    终于搞定了,原因是jsf的机制就是这样。
    页面刷新如果不在java代码一级去设置样式的话,他是不会重新生成样式的,最后改了源代码才搞定。