This version of the page http://911.lg.ua/index.php?showtopic=980 (0.0.0.0) stored by archive.org.ua. It represents a snapshot of the page as of 2009-07-21. The original page over time could change.
Javascriрt в вопросах и ответах - Северодонецкие форумы

Здравствуйте, гость ( Вход | Регистрация )

3 страниц    1 2 3 >  
 Javascriрt в вопросах и ответах, если знаеш,заходи и поделись :)
Опции
Po4emu4ka
10.10.2005, 14:01
Сообщение #1


Почетный камрад


Обратиться по нику
Цитата выделенного
Сообщений: 3 567
Регистрация: 18.5.2005
Из: Северодонецк



Может кто нибудь поможет разобраться:
Переопределяя событие onResize(window.onresize= message;)функция выполняется.
Но припопытке переопределить onClick результатов не даёт функция не выполняется?
Почему?
 
Theo
10.10.2005, 14:57
Сообщение #2


Экс-Хаератый


Обратиться по нику
Цитата выделенного
Сообщений: 3 571
Регистрация: 30.8.2002



Вот же ж почемучка. :)))
Давай код в студию - посмотрим.

Ф-я должна работать.

<a href="#" onClick="javascriрt:alert('Yo!')">blabla</a>
 
Po4emu4ka
10.10.2005, 15:23
Сообщение #3


Почетный камрад


Обратиться по нику
Цитата выделенного
Сообщений: 3 567
Регистрация: 18.5.2005
Из: Северодонецк



<a href="#"onClick="javascriрt :alert('Yo!')">blabla</a>
Это чепуха.
window.onclick= message;
message()
{---------}
при возникновенни события клик в любом месте документа должно выполняться "message()Это переопределение события.
Но есть ещё такая штука как перехват события:
window.captureEvents(Event.CLICK);

window.onclick= handle;

function handle(e)
Вместо "виндов" можно вставить любой объект,но у меня даже книжные примеры на "клик" не выполняются.
Может я не правильно понял?
Если я определил реакцию "виндов"на событие то по клику на любом обекте должна выполняться "месадж" или "хандл" без назначения конкретному объекту реакции на событие "клик".
 
Po4emu4ka
10.10.2005, 15:30
Сообщение #4


Почетный камрад


Обратиться по нику
Цитата выделенного
Сообщений: 3 567
Регистрация: 18.5.2005
Из: Северодонецк



Весь смысл в том чтоб написать универсальную функцию,не прописывать на каждый объект) а в функции условие если объект такого типа выполнять такое действие если другого второе.ТОгда не нужно назначать каждому объекту на какое действие реагировать,вместо того чтоб писать 30 раз onClick="bla()",всего один скрипт на пяток строчек.
 
Po4emu4ka
10.10.2005, 16:15
Сообщение #5


Почетный камрад


Обратиться по нику
Цитата выделенного
Сообщений: 3 567
Регистрация: 18.5.2005
Из: Северодонецк



TheoМожет document.onclick=function1;?
 
Theo
11.10.2005, 11:25
Сообщение #6


Экс-Хаератый


Обратиться по нику
Цитата выделенного
Сообщений: 3 571
Регистрация: 30.8.2002



Ой, сложный вопрос.

Могу сказать, что
<html>
<body onClick="javascriрt:alert('yo')">
<p>
123</p>
</body>
</html>

у меня выполняется нормально. Нужно написать функцию, которая определяет, на каком элементе документа произошёл клик. Пошерсти документацию по JS. Или спроси на спец.форуме.
 
Po4emu4ka
11.10.2005, 13:33
Сообщение #7


Почетный камрад


Обратиться по нику
Цитата выделенного
Сообщений: 3 567
Регистрация: 18.5.2005
Из: Северодонецк



Theo
Разобрался я с переопределением одно но только-если определил клику действие допупстим поменять одну картинку на другую щёлкаеш на страничке и они меняются но если щёлкнеш на ссылке ко переопределённая функция не выполняется а подгружается страница на которую указывала ссылка,не могу с этим ничего поделать,нашёл что если в конце переопределяющей функции вернуть (return false) то после клика(функции) ссылка выполняться не должна.Ты не вкурсе-- можно как то сделать чтоб при клике на ссылку она не подгружала файл а тот файл на который она ссылается можно было бы присвоить(src="aaa.jpg") ресурсу другой картинки?
У меня получается, только если объект клика не ссылка :(
 
ChuhranDI
11.10.2005, 14:13
Сообщение #8


Пользователь


Обратиться по нику
Цитата выделенного
Сообщений: 158
Регистрация: 3.5.2005
Из: Северодонецк



Цитата
Переопределяя событие onResize(window.onresize= message функция выполняется.

Это не переопределение события. Это указание действий, которые необходимо выполнить при совершении события "onresize". Хотя, что именно, Вы, подразумеваете под словом "переопределить"?

Лично у меня сразу возникли вопросы:
1) Что вообще задумывается за приложение? Решение "в лоб" не всегда эффективно!
2) Что возвращает Ваша функция "message"? Если Вы ничего не указывали явно, то она должна возвращать только NULL!
3)
Цитата
Весь смысл в том чтоб написать универсальную функцию,не прописывать на каждый объект) а в функции условие если объект такого типа выполнять такое действие если другого второе.ТОгда не нужно назначать каждому объекту на какое действие реагировать,вместо того чтоб писать 30 раз onClick="bla()",всего один скрипт на пяток строчек.

А что здесь сложного – переопределите реакцию (действия) для нужного Вам объекта по совершению опр. события над ним. Затем всё это запихнуть в onload. Простой пример:
Код
function initEvents( ) {
   // these events OK with all but NN2 and IE3
   document.forms[0].onsubmit = validateMainForm;
   document.forms[0].elements["email"].onchange = validateEmail;
   if (document.getElementById) {
       // these work only in when W3C DOM supported
       document.getElementById("logo").onclick = goHome;
       document.body.onclick = blockEvent;
   }
}
window.onload = initEvents;

Разумеется функции validateEmail, goHome, blockEvent должны быть определены.

4) В каком браузере трестируете код? Полезно было бы определить существует ли вообще такое события для этого объекта. Хотя можно всё указывать явно:
Код
document.getElementById("myButton").addEventListener("click", processClick, false);


5) А нет ли у Вас случайно в коде синтаксической ошибки? Повальное увлечение блокнотом именно к этому и приводит ;-) – без обид.

З.Ы. А нельзя ли немного более аккуратнее оформить текст (или мысли), хотя бы в своём вопросе – очень сложно разобраться.


(Отредактировал(а) ChuhranDI - 15:14 - 11 Окт., 2005)
 
Po4emu4ka
11.10.2005, 17:21
Сообщение #9


Почетный камрад


Обратиться по нику
Цитата выделенного
Сообщений: 3 567
Регистрация: 18.5.2005
Из: Северодонецк



ChuhranDI
document.getElementById("myButton").addEventListener("click" , processClick, false);
Можно немного подробнее об этой сточке.
addEventListener-я так понял добавить событие объекту?
А в скобках что?
processClick?
почему нельзя
document.form[0].myButton.addEventListener("click" , processClick, false);?
Да собственно говорил что при назначении событию объекта каких- то действий они выполняются если объект не ссылка,если ссылка то подгружается страницафайл на которую она ссылается, а действие назначенное событию непроисходит.
document.getElementById("logo").onclick = goHome;
назначаестя конкретному объекту "лого",а если нужно всем картинкам document.Images[] да ещё определённого размера?
 
Theo
12.10.2005, 9:57
Сообщение #10


Экс-Хаератый


Обратиться по нику
Цитата выделенного
Сообщений: 3 571
Регистрация: 30.8.2002



Я - пас. JS знаю поскольку постолько и редко использую. Может, Дима подсобит?
 
ChuhranDI
12.10.2005, 15:07
Сообщение #11


Пользователь


Обратиться по нику
Цитата выделенного
Сообщений: 158
Регистрация: 3.5.2005
Из: Северодонецк



Цитата
document.getElementById("myButton").addEventListener("click" , processClick, false);
Можно немного подробнее об этой сточке.


Поддержка:
Javascriрt
1.5+, Jscriрt
5.0+ Nav6+, IE5+
Синтаксис:
targetObj.addEventListener(тип, listener, useCapture);
Описание:
Метод addEventListener() объекта EventTarget добавляет к данному целевому объекту новый обработчик событий. Параметр тип указывает тип ожидаемого события, параметр listener — имя функции, вызываемой при возникновении события, а параметр useCapture - это булево значение, которое указывает, можно ли перехватить событие обработчиком события родительского объекта для данного целевого объекта.


Цитата
почему нельзя
document.form[0].myButton.addEventListener("click" , processClick, false);?

Каждый элемент документа, ну не обязательно документа, имеет свой уникальный индефикатор (id), имя (name) и порядковый номер в объекте своего родителя. В моём случае обращение происходит по его id, в Вашем — по его порядковому номеру. В большинстве браузеров это должно работать. DOM рекомендует использовать именно getElementById, хотя и не все браузеры его поддерживают!

Цитата
Да собственно говорил что при назначении событию объекта каких- то действий они выполняются если объект не ссылка,если ссылка то подгружается страницафайл на которую она ссылается, а действие назначенное событию непроисходит.

Для этого нужно что бы, или функция возвращала false, или указать самому явно. Примеры:
Код
function MyFunc(param1, param2)
{
// тела функции
}
<a href="#" OnClick="MyFunc('param1', 'param2'); return false;">Go-o-o</a>

function MyFunc(param1, param2)
{
// тела функции
return false;
}
<a href="#" OnClick="return MyFunc('param1', 'param2');">Go-o-o</a>

Цитата
а если нужно всем картинкам document.Images[] да ещё определённого размера?

Ну и переберите этот массив:
Код
function MyFunc()
{
var MyWidth = 100;
for(i=0; i<document.images.length; i++)
{
if(document.images[i].width == MyWidth)
{
// здесь указываем, что
// нужно сделать при
// совершении события
alert(document.images[i].width);
}
}
}
window.onload = MyFunc;


1) Я так и не увидел того, что конкретно Вам нужно. Что-то мне подсказывает, что без addEventListener в вашем случае можно спокойно обойтись, а привязка к картинкам с опр. шириной это полный изврат! И вообще нужно запастись хорошей литературой и не задавать вопросов, "а что это такое?"

Удачи!




(Отредактировал(а) ChuhranDI - 12:22 - 13 Окт., 2005)
 
Theo
13.10.2005, 9:33
Сообщение #12


Экс-Хаератый


Обратиться по нику
Цитата выделенного
Сообщений: 3 571
Регистрация: 30.8.2002



Кстати, да. Что за задача. А то у меня чувство, что микроскопом гвозди забивают...
 
Po4emu4ka
13.10.2005, 15:47
Сообщение #13


Почетный камрад


Обратиться по нику
Цитата выделенного
Сообщений: 3 567
Регистрация: 18.5.2005
Из: Северодонецк



ChuhranDI
Спасибо большое за совет!
addEventListener-почитаю литературку разберусь.
К сожалению MyFunction я испробовал одним из первых.
И хотел именно избавиться от привязки onClick к конкретному объекту.Почему это мне не подошло--50 минифото на каждую нужно указать событие,в параметрах файл замены,и всё руками,долго.
Переборка массива тоже не проходит--вот если бы была одна кнопка,жмёш на неё-картинки меняются тогда да,а если следующий элемент неизвестен невыходит(не хочу смотреть подряд,хочу выборочно).
P.S.Если человек не задаёт вопросов типа "как?что?почему?" то это либо всевышний обладающий абсолютными знаниями либо имбецильный идиот которому знания не нужны.Задаю я их только когда упираюсь в глухой угол и не раньше :).
 
Theo
13.10.2005, 17:34
Сообщение #14


Экс-Хаератый


Обратиться по нику
Цитата выделенного
Сообщений: 3 571
Регистрация: 30.8.2002



А генерировать это всё "на лету"?
 
ChuhranDI
14.10.2005, 15:44
Сообщение #15


Пользователь


Обратиться по нику
Цитата выделенного
Сообщений: 158
Регистрация: 3.5.2005
Из: Северодонецк



Так и нужно делать! Никому даже в голову не прийдет это всё делать вручную! Мне лень это делать даже для 10 элементов. Кстате, генерировать Javascriрt-код можно самим же Javascriрt!
 
tommy
14.10.2005, 21:15
Сообщение #16


Трёхсоттысячник


Обратиться по нику
Цитата выделенного
Сообщений: 17 408
Регистрация: 25.6.2005
Из: 82.146.58.227



подскажите, как прикрепить java scriрt(например new.js) к html-файлу(например index.shtml)
 
Po4emu4ka
15.10.2005, 1:51
Сообщение #17


Почетный камрад


Обратиться по нику
Цитата выделенного
Сообщений: 3 567
Регистрация: 18.5.2005
Из: Северодонецк



tommy
помоему пишеш пустое оглавление скрипта но там ещё дописываеш src="asd.js" тело скрипта автоматом вставиться вто место,а обращаться к функциям как будто они прописаны в самой странице.
<scriрt LANGUAGE="Javascriрt" src="asd.js"> </scriрt>
помоему так.
так же точно можно вставлять шаблоны ssi тока там кусок самого штмеля так вставляеш(один кусок на 5-10 страниц :)  )
 
Theo
15.10.2005, 11:40
Сообщение #18


Экс-Хаератый


Обратиться по нику
Цитата выделенного
Сообщений: 3 571
Регистрация: 30.8.2002



tommy
поставь DreamWeaver, поработай, запомни синтаксис, потом вопросов не будет.

В блоке <head>...</head>
<scriрt language="javascriрt1.2" src="/javascriрts.js" type="text/javascriрt"></scriрt>
 
tommy
15.10.2005, 17:46
Сообщение #19


Трёхсоттысячник


Обратиться по нику
Цитата выделенного
Сообщений: 17 408
Регистрация: 25.6.2005
Из: 82.146.58.227



всем спасибо за ответы
 
JhonyB
1.9.2007, 18:21
Сообщение #20


Камрад


Обратиться по нику
Цитата выделенного
Сообщений: 1 799
Регистрация: 15.11.2004
Из: СеверСити



блин не пойму че не так всё правильно вроде, но не работает ФФ 2.0 (IMG:http://911.lg.ua/style_emoticons/default/sad.gif) под ИЕ6 и Оперой 9.10 работает. В ФФ ява включена ...
CODE

<html>
<head>
<script language="javascript">
n=9;
function changeHeader()
{
hd.align="center";
hd.style.fontSize=2*n+"mm";
hd.style.fontWeight="normal";
hd.style.fontStyle="italic";
hd.style.color="#00F";
}
</script>
</head>

<body>
<h1 id="hd" onclick="changeHeader()">_12345 6789 000_</h1>
</body>
</html>
 
« Предыдущая тема · Интернет · Следующая тема »
 

3 страниц    1 2 3 >

 

Режим отображения: Стандартный · Переключить на: Линейный · Переключить на: Древовидный

Подписка на тему · Сообщить другу · Версия для печати · Подписка на этот форум

Текстовая версия Сейчас: 21.7.2009, 6:15
Технические вопросы       Северодонецк online