2012-02-20 44 views
1

我正在更改用戶某些操作中的一些dijits的禁用屬性。它的作品,但小部件的css不會得到更新,除非被徘徊,或基本上觸發小部件上的任何事件。我怎樣才能解決這個問題?我錯過或做錯了什麼? 我正在使用Firefox 8.0.1瀏覽器。刷新css通過javascript來切換dijit小部件的「禁用」屬性

+0

你的意思是「他的CSS沒有更新」?你的CSS是什麼樣的?你在使用屬性選擇器嗎?如何更改'disabled'屬性?換句話說:你需要顯示代碼。 – RoToRa 2012-02-20 09:58:22

+0

@RoToRa:我的意思是,用於區分正常狀態的禁用小部件的css沒有使用我的代碼設置wd.disabled =「disabled」打開/關閉,除非觸發了任何事件。 – 0xc0de 2012-02-20 10:29:06

回答

1

我在做這樣的事情

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

(其實我的代碼是不同的,但它在做類似的功能。)

這是造成的,因爲在dijit的小部件可能不知道什麼時候更改代碼的直接屬性。我不好意思,我直接做了,而不是使用set API(這隻針對dijit小部件,或許我應該改變我的問題具體?)。

widget.set("disabled", condition); 

我也得到了成功做dojo.removeClass(widget, "dijitDisabled");(有很多班「已禁用」狀態),但這種做法是幼稚的,最後我得到了上述方案,這是很好,標準,簡潔。

+0

是的,這當然是因爲dijit,單獨的關鍵詞不是很明顯。 – RoToRa 2012-02-20 10:34:22

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文件中定義一個類,我需要執行時,我想展現給用戶禁用元素(改變背景等..)

希望這會有所幫助。

+0

-1用於不必要的瀏覽器嗅探。 IE支持'.className'屬性很好。 (另外我不認爲這實際上回答了這個問題。) – RoToRa 2012-02-20 09:56:27

+0

通過執行+1來修復,因爲我的問題沒有具體/清楚。 – 0xc0de 2012-02-20 10:46:05

+0

@RoToRa但IE6 ..? – Ved 2012-02-20 11:04:00