Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Обработчик событий в js (Немного терпения)

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3

Открыть новую тему     Написать ответ в эту тему

Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
PANSHAMSKOE

Цитата:
Посоветуйте литературу с чего лучше начинать?

без понятия, если честно.
я любой язык программирования изучаю только по мануалам.
 
ps: да, и эта конструкция, конечно же, сработает только если один класс указан
if (els[i].className=='highslide')  


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 22:46 20-03-2011 | Исправлено: Cheery, 22:48 20-03-2011
PANSHAMSKOE

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ой, сорр, другой исх ))) смотрел)
 
Добавлено:
Ещё раз СП и за совет тоже(такого же мнения), просто доволен как никогда))
 

Всего записей: 28 | Зарегистр. 14-03-2011 | Отправлено: 22:49 20-03-2011
PANSHAMSKOE

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте, это опять я.
 
Всегда чего-то не хватает, до полной ))
 

Код:
Подскажите как реализ. проверку(.#):
========================================================
трали-вали какой-то текст
<div id="U">
трали-вали какой-то текст
<div class="E">обработ</div>
трали-вали какой-то текст</div>
========================================================
Если не хватает одного из .#, или сразу .#, то return true
 
Заранее спасибо.

Всего записей: 28 | Зарегистр. 14-03-2011 | Отправлено: 18:01 22-03-2011
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
PANSHAMSKOE

Цитата:
Если не хватает одного из .#, или сразу .#,  

?? нормальным языком можно?

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 19:49 22-03-2011
PANSHAMSKOE

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Конечно)), но я думаю вы меня поняли, о чем я....
 
Вложенность контейнера с двумя дивами, один в другом, как на примере с трали-вали (один с ид, другой с классом), обработ. работает только в случае, когда вложен в эти два дива, если отсутствует хотя бы один ид или класс у дива, то конструкция обработчика возвращает void, вместо положенного false
 

Всего записей: 28 | Зарегистр. 14-03-2011 | Отправлено: 08:26 23-03-2011 | Исправлено: PANSHAMSKOE, 09:30 23-03-2011
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
PANSHAMSKOE

Цитата:
но я думаю вы меня поняли, о чем я....

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

Цитата:
Вложенность контейнера с двумя дивами, один в другом, как на примере с трали-вали (один с ид, другой с классом), обработ. работает только в случае, когда вложен в эти два дива, если отсутствует хотя бы один ид или класс у дива, то конструкция обработчика возвращает void, вместо положенного false

 
ну.. получитаете "указатель" на внешний div (каким образом - это уже зависит от ситуации)
например  
var dv=document.getElementById('U')
далее берете все divы, которые являются его детьми
var els=dv.getElementsByTagName('div')
и в цикле, как описал ранее, перебираете проверяя есть ли у него className или id
for(i=0;i<els.length;i++)
if (els[i].className || els[i].id) return true
return false
 
что нибудь такое

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 18:25 23-03-2011
PANSHAMSKOE

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Насчет изложенной мной кривой, очень кривой мысли в посте выше, согласен.
 
Андерсона поймет только Андерсон, а может и не поймет вовсе)))
 
Попробую, отпишусь в топике (Спс).

Всего записей: 28 | Зарегистр. 14-03-2011 | Отправлено: 21:16 23-03-2011
PANSHAMSKOE

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да, я и вправду не так изложился...
 

Код:
<div id="qq">какой-то текст<br />  
 
        <div class="ww">какой-то текст<br />
             
                <a href="1.jpg" class="obr" target="_blank"><img src="p1.jpg" class="uvfot" /></a>
                          <div class="zzzzz">описание картинки</div>
  </div>
          </div>

Не пойму как записать зависимость тегов с идентификатором qq и класса ww, на обработчик тега a, тобишь получается, что он работает когда заключен в эти 2 divа ( привязан к id и class ), если нет одного из идентификатора или class у одного из div, то конструкция обработчика <a href="1.jpg" class="obr" target="_blank"> становится неработаспособной.

Код:
 
var dv=document.getElementById('qq');  
var dw=document.getElementByClassName('ww');
var elq=dv.dw.getElementsByTagName('div');
var els=document.getElementsByTagName('a');
for(i=0;i<els.length;i++)  ???
{
не знаю как дальше записать
}
 


Всего записей: 28 | Зарегистр. 14-03-2011 | Отправлено: 11:15 24-03-2011 | Исправлено: PANSHAMSKOE, 11:21 24-03-2011
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
PANSHAMSKOE

Цитата:
Не пойму как записать зависимость тегов с идентификатором qq и класса ww,

я вас тоже не пойму.. id должен быть уникальный, то есть вы проверять собрались только один элемент?


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 19:52 24-03-2011
PANSHAMSKOE

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нет, два: id и class у diva

Всего записей: 28 | Зарегистр. 14-03-2011 | Отправлено: 20:26 24-03-2011
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
PANSHAMSKOE
я все равно не пойму, чего вы хотите добиться
проверить, что тег a находится в двух вложенных дивах с определнными id и css классом?

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:30 24-03-2011
PANSHAMSKOE

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Да, именно так.
 

Цитата:
чтобы тег a находился в двух вложенных дивах с определнными id и классом

 
И шла проверка на id и class у этих divов.

Всего записей: 28 | Зарегистр. 14-03-2011 | Отправлено: 22:13 24-03-2011 | Исправлено: PANSHAMSKOE, 22:15 24-03-2011
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
PANSHAMSKOE
вы лезите в те дебри, которые проще делать с помощью jQuery  
иначе придется получать родителей, проверять id и className
в jQuery такое решается практически в одну строчку
в вашем случае, если на чистом js, то нашли A тег, далее начали выбирать родителей через parentNode, для каждого смотрим tagName и проверяем id или className, если это div
продолжать до тех пор, пока не подниметесь вверх до BODY в DOM структуре

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 22:30 24-03-2011
PANSHAMSKOE

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Пожалуйста, можно показать как на js такое делается (без jq), у Вас так хорошо получается.

Всего записей: 28 | Зарегистр. 14-03-2011 | Отправлено: 23:39 24-03-2011 | Исправлено: PANSHAMSKOE, 00:07 25-03-2011
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
PANSHAMSKOE
меня на лесть не взять - я и сам знаю, что умею.
сделайте на jQuery - будет гораздо проще, а лишний js файл на 50 кб (или сколько там) - так он только в первый раз будет загружаться, а потом браузер будет брать из кэша
 
ps: что нить такое

Код:
<script>
var els=document.getElementsByTagName('a')
for(i=0;i<els.length;i++)
 if (check_element(els[i])) alert('found')
 
 
function check_element(el)
{
 var foundfirst=false
 while(el.tagName!='BODY')
 {
  if (el.tagName=='DIV')
  {
   if (foundfirst&&el.id=='qq') return true
   if (!foundfirst&&el.className=='ww') foundfirst=true
  }
  el=el.parentNode
 }
return false
}
</script>  

 
вместо alert('found') делаете то, что вам хочется

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:34 25-03-2011 | Исправлено: Cheery, 02:48 25-03-2011
PANSHAMSKOE

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спс, пробую, точнее попробую, не знаю, что с этого получится.......

Всего записей: 28 | Зарегистр. 14-03-2011 | Отправлено: 00:40 26-03-2011
PANSHAMSKOE

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Полдня парился, и так и сяк, так и не смог прикрутить обработчик.
 
Главное логика, то она вроде понятна..

Код:
 
 if (check_element(els[i])) ???
 
if (els[i].className=='obr')
 els[i].onclick=function(){hs.expand(this);return false;}
 

Туго у меня с этим, вы уж необессудьте.
 
Уже слюни ручьем текут)
 
 
Добавлено:
С одной стороны, вроде и не совсем сложно, а с другой стороны, даже самое легкое становится трудным на пути новичка... Эх...  

Всего записей: 28 | Зарегистр. 14-03-2011 | Отправлено: 13:49 28-03-2011 | Исправлено: PANSHAMSKOE, 17:48 28-03-2011
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
PANSHAMSKOE

Цитата:
Туго у меня с этим, вы уж необессудьте.  

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

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:24 28-03-2011
PANSHAMSKOE

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вместо
Код:
alert('found')

 
Вставить тот самый обработчик, который у ссылки.

Всего записей: 28 | Зарегистр. 14-03-2011 | Отправлено: 21:45 28-03-2011
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
 if (els[i].className=='highslide'&&check_element(els[i])) els[i].onclick=function(){hs.expand(this);return false;}

ну это уж совсем элементарно - тут и начинающим быть не нужно.


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:48 28-03-2011
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3

Компьютерный форум Ru.Board » Интернет » Web-программирование » Обработчик событий в js (Немного терпения)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2025

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru