Javascript onfocus обработчик событий позволит мне выполнять только одну функцию - PullRequest
0 голосов
/ 12 сентября 2011

Я немного новичок с Javascript, поэтому сейчас я прошу прощения, если ответ очевиден. Моя проблема в том, что при фокусировке на заданной текстовой области я хочу очистить ее содержимое и изменить отображаемое значение отдельного элемента div с 'none' на 'block'. Делать эти вещи отдельно не было проблемой.

Очистить содержимое:

onfocus="if (this.value == 'Update your status') {this.value = '';}"

и изменение свойства отображения отдельного элемента div:

onfocus="displayControls();"
<script type="text/javascript">
            function displayControls() {
                 if (document.getElementById('statusUpdaterControls').style.display == "none") {
                     document.getElementById('statusUpdaterControls').style.display = "block";
                }; 
            }; 
</script>

Когда я попытался скомбинировать их, либо в событии onfocus текстовой области, либо в функции displayControls () выше, как это:

    <script type="text/javascript">
                function displayControls() {
                    if (document.getElementById('statusUpdater').value == 'Update your status') {
                        document.getElementById('statusUpdater').value = '';
                    }; 
                    if (document.getElementById('statusUpdaterControls').style.display == "none") {
                        document.getElementById('statusUpdaterControls').style.display = "block";
                    }; 
                }; 
            </script>

вдруг ни одно из решений не работает ... Любая помощь будет принята с благодарностью.

EDIT: Я нашел решение - поместив понятный код контента в событие onclick и сохранив их отдельно, оба элемента выполняются. Тем не менее, я был бы признателен за понимание того, что я делал неправильно ранее, поскольку я, должно быть, делал что-то глупое, что могу улучшить в будущем. Заранее спасибо.

1 Ответ

0 голосов
/ 12 сентября 2011

onfocus принимает функцию, а не строку, поэтому:

something.onfocus = displayControls;
...