![]() |
Очень сложный вопрос по JS (определение позиции подчиненных элементов в массиве childNodes) Добрый день. есть див. В нем - несколько элементов (в т.ч. вложенных друг в друга). <div> <span>1</span> <span>2</span> <span>3</span> <span>4 <span>5</span> </span> </div> вопрос: можно ли , вызывая у главного дива онмаусовер, узнавать, является ли элемент, над которым мыша, дитём этого дива, а если да, то узнать, какой у него номер в массиве childNodes этого дива? Пока что мысль токо - навесить на див onmouseover, выявлять таргет, проходить по ее парентнодам аж до этого дива, а вот как узнавать, какой он child у нее, это уже фиг его знает. =( В общем, кто вкурил, просьба помочь в рассуждениях. |
думаю событие лучше вешать на span, проверить есть ли у него определенный предок поможет джикверевский parents(), а номер дитя - джикверевский index() |
но если вешать событие на див (опять же c jQuery), то можно использовать event.currentTarget и event.target |
ага. |
jQuery принимается? |
4-vk > да, токо потом оттудова нужное выковыриваю =) |
Что-то типа <body> <div> <span>1</span> <span>2</span> <span>3</span> <span>4 <span>5</span> </span> </div> <div id="logg"></div> <script> var mainDiv = $('body div:first'); mainDiv.find('*').mouseover(function(event)** var currTarget = event.target; var parentsArr = $(currTarget).parents(); var mainDivChilds = mainDiv.children(); mainDivChilds.each(function(index)** var currMainDivChild = this; var founded = false; if(currTarget == currMainDivChild)** if(founded) return false; $('#logg').text(index); founded = true; **; parentsArr.each(function()** var currParent = this; if(currParent == currMainDivChild)** if(founded) return false; $('#logg').text(index); founded = true; ** **); **); **) </script> </body> |
Номер "ребенка" пишется $('#logg'). Считаются, естественно, только прямые дети от mainDiv |
7-vk > но сама суть это паходу это: if(currTarget == currMainDivChild) т.е. тупо проверка на идентичность. токо походу нада === |
совокупность if(currTarget == currMainDivChild) и if(currParent == currMainDivChild) И поковыряйте поведение события см. [url]http://javascript.ru/tutorial/events/timing[/url] Думаю, можно заоптимизировать |
точнее, наверно, [url]http://javascript.ru/tutorial/events/mouse[/url] |
offtop "Жаль, неосуществима идея: создать сеть ЛТП для больных дурным программизмом и упечь туда особо злостных хакеров пусть дорожки мостят и кусты стригут в рамках приведения планеты в порядок." |
Текущее время: 17:42. Часовой пояс GMT +3. |