Способы вызова функций JavaScript - PullRequest
0 голосов
/ 22 августа 2011

Как я могу вызвать функцию JavaScript, когда отображение div не установлено?

У меня есть такой код:

if(document.getElementById("myDiv").style.display == "none"){

myFunction();

}

Я думал о функции, которая повторяется каждый раз(аналог события ActionScript ENTER_FRAME) с оператором if внутри него, но я думаю, что это приведет к большим задержкам.

Извините, если я не достаточно ясен.

Ответы [ 3 ]

2 голосов
/ 22 августа 2011

К сожалению, я не верю, что есть собственный способ прослушать изменения стиля. Я хотел бы создать некоторые функции прокси. Всякий раз, когда вы хотите скрыть или показать div, вызывайте эти прокси-функции, а не устанавливайте стиль напрямую.

function hideMyDiv() {
    document.getElementById("myDiv").style.display = "none";
    myFunction();
}

function showMyDiv() {
    document.getElementById("myDiv").style.display = "block";
}

Предложение Коуми об опросе с помощью setInterval не будет эффективным для процессора.

0 голосов
/ 22 августа 2011

Пытаясь придумать полезную вещь, чтобы сказать здесь.

По сути, вы хотите попробовать и спроектировать свое программное обеспечение так, чтобы вам не нужно было пытаться делать подобные вещи.

Вероятно, самый простой способ продвинуться вперед - принять то, что предлагает Джоджо.

Другой подход - добавить небольшую абстракцию, чтобы все, что могло бы скрыть div, вызывало событие, а один слушатель этого события скрывал.div, другой делает другое действие.

0 голосов
/ 22 августа 2011

Я могу вспомнить 2 варианта.

  1. То, что вы выше называли с помощью setInterval.

Или

  1. Так какВы ожидаете программного события, почему бы вам не вызвать myFunction в то время, когда вы показываете myDiv?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...