Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: установить атрибут
 
 автор: jangot   (07.01.2008 в 00:52)   письмо автору
 
 

Я новичек в js.
У меня есть функция

function upMenu(action){
    document.getElementById('items').style.display = action;
    }

Когда я пишу

<div id="new" onmouseover="upMenu('block')">...

Функция вызывается нормально, а когда пытаюсь установить значение атрибута так:

document.getElementById('new').onmouseover = "upMenu('block')";

Почему то не работает.
пробовал так


document.getElementById('new').setAttribute("onmouseover", "upMenu('block')");

Тоже не работает
Тестирую в FF

До этого пробовал менять значение других атрибутов, все хорошо получалось
Как правильно через js задавать значения для обработчиков событий?

   
 
 автор: bronenos   (07.01.2008 в 01:23)   письмо автору
 
   для: jangot   (07.01.2008 в 00:52)
 

назначать функцию а не оператор в строковом виде

   
 
 автор: CNT   (07.01.2008 в 06:21)   письмо автору
 
   для: jangot   (07.01.2008 в 00:52)
 

В записи объект.событие = чего-то должно содержать или только имя имеющейся функции (без скобочек и аргументов в них), или же текст какой-то функции.

Имя вам не подходит, ибо вам надо передать функции аргумент.
Следовательно, надо прописывать новую функцию, например так:
document.getElementById ('new').onmouseover = function () {upMenu ('block')}

   
 
 автор: bronenos   (07.01.2008 в 10:36)   письмо автору
 
   для: CNT   (07.01.2008 в 06:21)
 

CNT, а допустимо ли
$("#my").onclick = new Function("", "return window.event.clientX;");

   
 
 автор: CNT   (07.01.2008 в 12:01)   письмо автору
 
   для: bronenos   (07.01.2008 в 10:36)
 

Конкретно эта запись выдаст "Неопределенную ошибку", ибо возвращать-то чему/кому будете численное значение?
Получается, что объекту на странице, что нелогично.

Но вообще запись через new Function вполне возможна.
Например
<script>
onload = function ()
{
document.getElementById ('btn').onclick = new Function ("alert ('Зенит - чемпион!')");
}
</script>
<body>
<input type="button" value="TEST" id="btn">
</body>

   
 
 автор: AKS   (07.01.2008 в 14:45)   письмо автору
 
   для: CNT   (07.01.2008 в 12:01)
 

етно эта запись выдаст "Неопределенную ошибку", ибо возвращать-то чему/кому будете численное значение?
>Получается, что объекту на странице, что нелогично.


Функция может возвращать что угодно. Ошибка, в данном случае, может возникнуть из-за отсутствия window.event в каком-либо host environment.

   
 
 автор: bronenos   (07.01.2008 в 15:45)   письмо автору
 
   для: CNT   (07.01.2008 в 12:01)
 

вполне возможна или или допустима?
а то я хотел бы поправить свои записи динамически присваиваемых обработчиков, и через строковые представления операторов это поудобнее будет

   
 
 автор: CNT   (07.01.2008 в 16:56)   письмо автору
 
   для: bronenos   (07.01.2008 в 15:45)
 

И возможно. И допустимо.
Это - стандарт языка.
http://www.devguru.com/Technologies/ecmascript/quickref/function_object.html

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования