我正在修改用户某些操作的一些dijit的disabled属性。它可以工作,但是小部件的css没有得到更新,除非鼠标悬停在上面,或者基本上触发了小部件上的任何事件。我该如何修复这个问题?我错过了什么或者做错了什么吗?我使用的是Firefox 8.0.1浏览器。
rsl1atfo1#
我做了一些
widget.disabled = (condition)?"disabled":"";
(实际上,我的代码是不同的,但它执行的功能相似。)这是因为dijit小部件无法知道代码何时直接更改了属性。我的错误在于我直接更改了属性,而不是使用set API(这仅针对dijit小部件,也许我应该将问题更改为具体问题?)。
set
widget.set("disabled", condition);
我也通过做dojo.removeClass(widget, "dijitDisabled");(有很多类用于“禁用”状态)获得了成功,但这种方法太天真了,最后我得到了上面提到的解决方案,它很好,标准,简洁。
dojo.removeClass(widget, "dijitDisabled");
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文件中定义的一个类,当我想向用户显示一个禁用的元素时(改变背景等),我需要执行这些操作。希望这个有用。
disabled_class
2条答案
按热度按时间rsl1atfo1#
我做了一些
(实际上,我的代码是不同的,但它执行的功能相似。)
这是因为dijit小部件无法知道代码何时直接更改了属性。我的错误在于我直接更改了属性,而不是使用
set
API(这仅针对dijit小部件,也许我应该将问题更改为具体问题?)。我也通过做
dojo.removeClass(widget, "dijitDisabled");
(有很多类用于“禁用”状态)获得了成功,但这种方法太天真了,最后我得到了上面提到的解决方案,它很好,标准,简洁。t3psigkw2#
在UI中发生特定动作时,可以调用JS方法。
我是这样做的:
这里的
disabled_class
是我在css文件中定义的一个类,当我想向用户显示一个禁用的元素时(改变背景等),我需要执行这些操作。希望这个有用。