代码之家  ›  专栏  ›  技术社区  ›  Yuval

是否有方法动态更改按钮的CSS类?

  •  2
  • Yuval  · 技术社区  · 15 年前

    我正在开发一个基于Wicket的Web应用程序。在应用程序中,并非每个用户都有权使用按钮。这些按钮实际上是简单的链接,例如

    <a wicket:id="publishButton" title="Publish" class="rightPanel_publish"><wicket:message key="publish"/></a>
    

    使用设置其视觉外观的CSS类(来自外部CSS文件),例如

    a.rightPanel_publish {
        display: block;
        width: 90px;
        height: 27px;
        background: url( ../imgs/right_panel_icon03.gif ) left top repeat-y;
        text-decoration: none;
        color: black;
        padding: 12px 0px 0px 35px;
    }
    

    当用户未被授权使用该按钮时,该链接将被禁用(在爪哇中),并且CSS由于某种原因不再被使用。

    我的问题 这是:有没有一种方法可以识别链接在运行时被禁用并更改CSS类?我宁愿避免使用javascript(到目前为止设法保持整个项目JS是免费的…),并且更喜欢与所有浏览器一起工作的东西。

    多谢,

    尤瓦尔=8)

    5 回复  |  直到 9 年前
        1
  •  3
  •   Justin Yost    15 年前

      if(document.getElementById('foo'))
      {
        document.getElementById('foo').className='bar';
      }
    
        2
  •  1
  •   annakata    15 年前

    如果没有某种类型的脚本,就没有办法做到这一点。“dhtml”中的“d”代表“javascript”:p


    编辑:事实上,既然你说 某物

        3
  •  1
  •   svenmeier    12 年前

    .rightPanel_publish_button {
      display: block;
      width: 90px;
      height: 27px;
      background: url( ../imgs/right_panel_icon03.gif ) left top repeat-y;
      text-decoration: none;
      color: black;
      padding: 12px 0px 0px 35px;
    }
    
        4
  •  1
  •   Katlu    12 年前

    myButton.add(new AttributeModifier("class", new AbstractReadOnlyModel<String>() {
    
            private static final long serialVersionUID= 1L;
    
            @Override
            public String getObject () {
                if (!isAuthorized()) {
                    return "rightPanel_unauthorized";
                }
                return "rightPanel_publishbutton";
            }
        }));
    

        5
  •  0
  •   OnesAndZeros    13 年前

    *.setVisible(Boolean boolean)

    setVisible()可以基于用户角色在类中的其他位置进行分配。所以你可能要找它…