dojo 通过javascript切换dijit小部件的“disabled”属性时刷新css

x759pob2  于 2022-12-16  发布在  Dojo
关注(0)|答案(2)|浏览(171)

我正在修改用户某些操作的一些dijit的disabled属性。它可以工作,但是小部件的css没有得到更新,除非鼠标悬停在上面,或者基本上触发了小部件上的任何事件。我该如何修复这个问题?我错过了什么或者做错了什么吗?我使用的是Firefox 8.0.1浏览器。

rsl1atfo

rsl1atfo1#

我做了一些

widget.disabled = (condition)?"disabled":"";

(实际上,我的代码是不同的,但它执行的功能相似。)
这是因为dijit小部件无法知道代码何时直接更改了属性。我的错误在于我直接更改了属性,而不是使用set API(这仅针对dijit小部件,也许我应该将问题更改为具体问题?)。

widget.set("disabled", condition);

我也通过做dojo.removeClass(widget, "dijitDisabled");(有很多类用于“禁用”状态)获得了成功,但这种方法太天真了,最后我得到了上面提到的解决方案,它很好,标准,简洁。

t3psigkw

t3psigkw2#

在UI中发生特定动作时,可以调用JS方法。
我是这样做的:

function disablewidget{
      if (navigator.appName == "Microsoft Internet Explorer") {
          var child = document.getElementById("id_of_your_widget");
          child.setAttribute("className", "disabled_class");
      }
      else{
          document.getElementById("id_of_your_widgets").className = "disabled_class";
      }
}

这里的disabled_class是我在css文件中定义的一个类,当我想向用户显示一个禁用的元素时(改变背景等),我需要执行这些操作。
希望这个有用。

相关问题