Обновить CSS при переключении атрибута «отключен» виджетов dijit через JavaScript - PullRequest
1 голос
/ 20 февраля 2012

Я изменяю отключенный атрибут ряда диджитов при определенных действиях пользователей.Это работает, но CSS виджетов не обновляется, если только не наведен на них, или в основном не вызывает какого-либо события в виджете.Как я могу это исправить?Я пропускаю или делаю что-то не так?Я использую браузер Firefox 8.0.1.

Ответы [ 2 ]

1 голос
/ 20 февраля 2012

Я делал что-то вроде

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

(На самом деле мой код отличается, но он выполнял аналогичные функции.)

Это было вызвано тем, что виджет dijit не мог знать, когдаКод изменил атрибут напрямую.Плохо, что я сделал это напрямую вместо использования set API (Это относится только к виджетам dijit, возможно, мне следует изменить свой вопрос на конкретный?).

widget.set("disabled", condition);

Я также добился успеха благодаряделать dojo.removeClass(widget, "dijitDisabled"); (с большим количеством классов для состояния «отключено»), но этот подход наивен, и в итоге я получил вышеупомянутое решение, которое является хорошим, стандартным и кратким.

0 голосов
/ 20 февраля 2012

Вы можете вызывать метод JS, когда в UI происходят определенные действия.
Я сделал это следующим образом:

  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 с помощьюдействия, которые нужно выполнить, когда я хочу показать пользователю отключенный элемент (изменение фона и т. д.)

Надеюсь, это поможет.

...