通过javascript刷新dijit小部件的'禁用'属性的css

时间:2012-02-20 07:34:31

标签: javascript css javascript-events dojo

我正在更改用户某些操作的多个dijit的disabled属性。它的工作原理,但小部件的CSS不会更新,除非被覆盖,或基本上触发小部件上的任何事件。我怎样才能解决这个问题?我错过了什么或做错了什么? 我使用的是Firefox 8.0.1浏览器。

2 个答案:

答案 0 :(得分:1)

我正在做类似

的事情
widget.disabled = (condition)?"disabled":"";

(实际上我的代码不同,但它正在执行类似的功能。)

这是因为dijit小部件无法知道代码何时直接更改了属性。我很糟糕,我直接而不是使用set API(这仅限于dijit小部件,或许我应该将我的问题改为具体?)。

widget.set("disabled", condition);

我也通过dojo.removeClass(widget, "dijitDisabled");(有很多“禁用”状态的课程)取得了成功,但这种方法很幼稚,最后我得到了上面提到的解决方案,它很好,标准,简洁。 / p>

答案 1 :(得分:0)

您可以在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文件中用动作定义的一个类,当我想向用户显示一个禁用元素(更改背景等等)时我需要执行它。

希望这有帮助。