Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
29 / 26 / 18
Регистрация: 02.04.2015
Сообщений: 316

Корректная передача строкового параметра в функцию

04.08.2016, 11:29. Показов 1276. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго, с места в карьер, объясните мне, недалекому, пожалуйста, почему вот это работает:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>testOnClick</title>
</head>
<body>
    <script>
        function Mig_label(){
            var label = document.getElementById("Third");
            if ( label.style.color == "black" ) {
                label.style.color = "blue";
            } else {
                label.style.color = "black";
            }
        }
        function blincoff(id){
            var label = document.getElementById(id);
            label.style.color = "black";
            label.id = id+id;
        }
        setInterval(Mig_label, 500);
    </script>
    <table align="center" style="text-align: center" width="98%" border="1" cellpadding="4" cellspacing="0">
        <tr>
            <th id="First">First</th>
            <th id="Second">Second</th>
            <th id="Third" onclick=blincoff("Third")>Third</th>
        </tr>
        <tr>
            <td>1</td>
            <td>2</td>
            <td>3</td>
        </tr>
    </table>
</body>
А вот это (попытался вызвать функцию с параметром):
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>testOnClick</title>
</head>
<body>
    <script>
        function Mig_label(id){
            var label = document.getElementById(id);
            if ( label.style.color == "black" ) {
                label.style.color = "blue";
            } else {
                label.style.color = "black";
            }
        }
        function blincoff(id){
            var label = document.getElementById(id);
            label.style.color = "black";
            label.id = id+id;
        }
        setInterval(Mig_label("Third"), 500);
    </script>
    <table align="center" style="text-align: center" width="98%" border="1" cellpadding="4" cellspacing="0">
        <tr>
            <th id="First">First</th>
            <th id="Second">Second</th>
            <th id="Third" onclick=blincoff("Third")>Third</th>
        </tr>
        <tr>
            <td>1</td>
            <td>2</td>
            <td>3</td>
        </tr>
    </table>
</body>
ни в мозиле, не в хроме не завелось??! Точнее - не мигает третий элемент в шапке при загрузке страницы...
У меня динамически будут формироваться 3 разные таблицы, некоторые ячейки нужно будет "подсветить" до клика пользователя, думал к каждой ячейке, которую нужно подсветить, добавлять вызов:
JavaScript
1
<script>setInterval(Mig_label("id-этой-ячейки"), 500);</script>
Научите, пож., почему в blincoff() при вызове из onclick=blincoff("Third") параметр нормально передается, а в Mig_label("Third") - не хочет?
И как "правильно" вообще должна решаться моя задача? Мало ли, м.б. я изначально, так сказать "концептуально" дал маху? ))
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.08.2016, 11:29
Ответы с готовыми решениями:

Передача параметра
Код частично относится и к php, но не в этом суть. Кавычек не хватает) Есть код (ненужное вырезал) &lt;script...

Передача параметра с JSP в сервлет
Здравствуйте! Учу Java for Web и возник вопрос. У меня есть JSP &lt;%@ page contentType=&quot;text/html;charset=UTF-8&quot;...

Передача параметра из js в php код
Здравствуйте, пожалуйста подскажите. Как можно передать параметр? вот часть кода: if (checkFlash()) { flash = '1';

5
Хитрая блондиночка $)
 Аватар для Hikari
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
04.08.2016, 11:35
Цитата Сообщение от ИмяПользователя Посмотреть сообщение
почему вот это работает
Наверное потому что:
Цитата Сообщение от ИмяПользователя Посмотреть сообщение
onclick=blincoff("Third")
Т.е. атрибут не оковычен.
Попробуй так:
JavaScript
1
<th id="Third" onclick='blincoff("Third")'>Third</th>
0
29 / 26 / 18
Регистрация: 02.04.2015
Сообщений: 316
04.08.2016, 11:44  [ТС]
Точнее, не так, если добавить alert(id); в function Mig_label(id), то при загрузке страницы высвечивается Third, но... совсем ничего не понимаю - почему, тогда, не находится элемент?!

Добавлено через 1 минуту
Цитата Сообщение от Hikari Посмотреть сообщение
атрибут не оковычен.
- самое смешное, что именно эта часть - работает!
Не работает изначальное "мигание", а остановка мигания стартует в обоих случаях...

Добавлено через 7 минут
Такс, еще раз по порядку:
Если я вызываю setInterval(Mig_label, 500); а в самой функции жестко прописываю конкретный id в кавычках - всё работает так, как нужно, но - неудобно будет каждой ячейке свою функцию с конкретным id'шником вставлять...

Поэтому хотел написать 1 функцию, которая параметром получала id'шник и производила бы изменения стилей, но... тесты показали, что если написать:
JavaScript
1
2
3
4
function Mig_label(id){
 alert(1);
}
setInterval(Mig_label("Third"), 500);
То будет выдан 1 единственный алерт, и все... счетчик больше не срабатывает... вопрос - почему и как правильно организовать "мигание до клика"?
0
Хитрая блондиночка $)
 Аватар для Hikari
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
04.08.2016, 12:38
Цитата Сообщение от ИмяПользователя Посмотреть сообщение
самое смешное, что именно эта часть - работает!
А вот я попадалась на проблемы, если ставила такой атрибут без ковычек. Ну ладно.

P.S. Отредактировала пост...
0
Эксперт HTML/CSS
 Аватар для Shakalaka
653 / 556 / 322
Регистрация: 27.01.2015
Сообщений: 1,374
04.08.2016, 13:25
Лучший ответ Сообщение было отмечено ИмяПользователя как решение

Решение

Цитата Сообщение от ИмяПользователя Посмотреть сообщение
function Mig_label(id){
* * * * * * var label = document.getElementById(id);
* * * * * * if ( label.style.color == "black" ) {
* * * * * * * * label.style.color = "blue";
* * * * * * } else {
* * * * * * * * label.style.color = "black";
* * * * * * }
* * * * }
Цитата Сообщение от ИмяПользователя Посмотреть сообщение
setInterval(Mig_label("Third"), 500);
Пытаетесь обратиться к элементу до того как он загружен.
setInterval с ошибкой.
JavaScript
1
2
3
setInterval(function(){
  Mig_label("Third")
}, 500);
либо
JavaScript
1
setInterval('Mig_label("Third")', 500);
JavaScript
1
2
3
4
5
window.onload = function(){
  setInterval(function(){
    Mig_label("Third")
  }, 500);
}
1
29 / 26 / 18
Регистрация: 02.04.2015
Сообщений: 316
04.08.2016, 16:53  [ТС]
Цитата Сообщение от Shakalaka Посмотреть сообщение
JavaScript
1
setInterval('Mig_label("Third")', 500);
- Вот окавычить имя функции я бы точно сам никогда бы не догадался, спасибо - так всё работает!!! )))))))))))))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.08.2016, 16:53
Помогаю со студенческими работами здесь

Передача параметра в обработчик на событие
Всем доброго времени. Есть задача: Создайте страницу с тремя ссылками: «JS Урок 1», «JS Урок 2», «JS Урок 3». При нажатии по каждой из ...

Одноклассники передача параметра из внешнего URL во фрейм
Привет. может, кто-нибудь знает способ передать и считать параметр из внешнего url во фрейм одноклассников. нужно для трекания установок. ...

Передача параметра для ссылки
Всем привет. 1) Есть ссылка вида &quot;https://site.ru/sub?go=123&amp;id=123&quot; 2) Мне нужно, чтобы в html форме было поле и кнопка. В поле...

Передача параметра в буфер обмена c JavaScript
Пользовательская форма вызывается по щелчку на веб-странице. Эта форма с кнопками написана на JavaScript. Необходимо по нажатию на кнопку...

Передача параметра
Доброе время суток! Я хотел у вам спросить по своей проблеме. Не получается сделать свою задачу. У меня на странице есть 10 картинок под...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru