我正在更改用户某些操作的多个dijit的disabled属性。它的工作原理,但小部件的CSS不会更新,除非被覆盖,或基本上触发小部件上的任何事件。我怎样才能解决这个问题?我错过了什么或做错了什么? 我使用的是Firefox 8.0.1浏览器。
答案 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文件中用动作定义的一个类,当我想向用户显示一个禁用元素(更改背景等等)时我需要执行它。
希望这有帮助。