Регистрация Правила Главная форума Поиск |
0
- 10.12.2012 - 21:39
|
Добрый день. есть див. В нем - несколько элементов (в т.ч. вложенных друг в друга). <div> <span>1</span> <span>2</span> <span>3</span> <span>4 <span>5</span> </span> </div> вопрос: можно ли , вызывая у главного дива онмаусовер, узнавать, является ли элемент, над которым мыша, дитём этого дива, а если да, то узнать, какой у него номер в массиве childNodes этого дива? Пока что мысль токо - навесить на див onmouseover, выявлять таргет, проходить по ее парентнодам аж до этого дива, а вот как узнавать, какой он child у нее, это уже фиг его знает. =( В общем, кто вкурил, просьба помочь в рассуждениях. | |
1
- 10.12.2012 - 22:35
|
думаю событие лучше вешать на span, проверить есть ли у него определенный предок поможет джикверевский parents(), а номер дитя - джикверевский index() | |
2
- 10.12.2012 - 22:39
| но если вешать событие на див (опять же c jQuery), то можно использовать event.currentTarget и event.target | |
3
- 11.12.2012 - 00:14
| ага. | |
4
- 11.12.2012 - 00:32
| jQuery принимается? | |
5
- 11.12.2012 - 00:35
|
4-vk > да, токо потом оттудова нужное выковыриваю =) | |
6
- 11.12.2012 - 01:25
|
Что-то типа <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> | |
7
- 11.12.2012 - 01:26
|
Номер "ребенка" пишется $('#logg'). Считаются, естественно, только прямые дети от mainDiv | |
8
- 11.12.2012 - 01:30
|
7-vk > но сама суть это паходу это: if(currTarget == currMainDivChild) т.е. тупо проверка на идентичность. токо походу нада === | |
9
- 11.12.2012 - 01:39
|
совокупность if(currTarget == currMainDivChild) и if(currParent == currMainDivChild) И поковыряйте поведение события см. http://javascript.ru/tutorial/events/timing Думаю, можно заоптимизировать | |
10
- 11.12.2012 - 01:42
| точнее, наверно, http://javascript.ru/tutorial/events/mouse | |
11
- 11.12.2012 - 01:48
|
offtop "Жаль, неосуществима идея: создать сеть ЛТП для больных дурным программизмом и упечь туда особо злостных хакеров пусть дорожки мостят и кусты стригут в рамках приведения планеты в порядок." | |
| Интернет-форум Краснодарского края и Краснодара |