【问题标题】:CSS is not getting updated in GXT textareaGXT 文本区域中的 CSS 未更​​新
【发布时间】:2017-06-12 15:42:57
【问题描述】:

我有一个文本区域,我需要在其中使用一个 CSS onClick 和另一个 CSS onBlur。但它没有更新 onBlur。你能帮我么 ?

final TextArea textarea = new TextArea();
textarea.addBlurHandler(new BlurHandler() {

    @Override
    public void onBlur(BlurEvent event) {
        textarea.addStyleName("gxtTextAreaTransparentBackground");
    }
});

textarea.addDomHandler(new ClickHandler() {

    @Override
    public void onClick(ClickEvent event) {
        textarea.addStyleName("gxtTextAreaDefaultBackground");
    }
}, ClickEvent.getType());

我的 CSS 代码如下,

.gxtTextAreaTransparentBackground * {
   background: red !important;
   border: 0 none !important;
   outline: none !important;
}

.gxtTextAreaDefaultBackground * {
   background: white !important;
   order: 1 none !important;
} 

【问题讨论】:

  • 嗯..应该可以。也试过setStyleName
  • 与问题无关,只是一般说明,您应该尽可能避免使用!important。因此,如果没有必要将它们放入,您应该删除它们。

标签: java html css gwt gxt


【解决方案1】:

假设,如果文本区域被聚焦,你想改变样式,你可以使用addBlurHandleraddFocusHandler

另外,我认为您的问题是,您没有删除其他样式。

类似的东西应该可以工作:

final TextArea textarea = new TextArea();

textarea.addBlurHandler(new BlurHandler() {
    @Override
    public void onBlur(BlurEvent event) {
        textarea.addStyleName("gxtTextAreaTransparentBackground");
        textarea.removeStyleName("gxtTextAreaDefaultBackground");
    }
});

textarea.addFocusHandler(new FocusEvent() {
    @Override
    public void onFocus(FocusEvent event) {
        textarea.addStyleName("gxtTextAreaDefaultBackground");
        textarea.removeStyleName("gxtTextAreaTransparentBackground");
    }
 });

希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 2017-11-10
    • 2021-12-22
    • 2011-05-18
    • 2012-10-28
    • 2011-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-10
    相关资源
    最近更新 更多