![]() |
недейкая задачка по js onmouseover с setTimeout-ом Надо: если над элементом (без id) нависнет мыша, то нужно покрасить элемент в другой цвет (onmouseover="this.style.color='red'; setTimeout('........', 1000);") и сделать так, что если через секунду указатель мышы будет все еще над ним (onmouseout="this.style.color='';"), то сделать this.onclick(). Вопрос, что надо написать вместо '........' в событии onmouseover()? |
недейкая = недецкая сорри, репентинг. |
по событию mouseout нужно этому элементу ставить атрибут а вместо троеточия делать клик, если атрибут установлен |
я не много напутал, но думаю идея понятна |
все, вопрос снимается. [url]http://go2dad.com/c3RhY2tvdmVyZmxvdy5jb20vcXVlc3Rpb25zLzEzNzQ4OTQxL29ubW91c2VvdmVyLXRvLWludm9rZS1vbmNsaWNrLWFmdGVyLTEtc2Vjb25k[/url] |
2-toly84 > да, примерно так. Но там вышел небольшой прикол: при setTimeout объект this превращался в объект window со всеми вытекающими (например нельзя было уже обратиться к this.parentNode, this.свойства и т.д. в онклике). |
5-Гавайские субтитры > с jQuery было бы без приколов, хотя на вкус и цвет... |
6-toly84 > да там наверное то же самое. Что там за функция это делает, не подскажете? Чисто посмотреть, как там реализовано. (если там вообще такое есть) |
7-Гавайские субтитры >[url]http://api.jquery.com/click/[/url] |
var element = $('#id'); element.mouseover(function()** // меняем цвет // ставим атрибут setTimeout(function()** // если есть атрибут - делаем клик **) **); element.mouseout(function()** // снимаем атрибут **) просто если таких элементов будет много - то нужно будет хранить для каждого из них объект таймера, а здесь - никаких заморочек |
9-toly84 > у элемента нету айди, в том-то и прикол. |
10-Гавайские субтитры > что мешает поставить его? + можно выбрать по тегу. |
[quote=toly84;28056359]что мешает поставить его?[/quote] ставить загодя - проблематично. Т.к. их миллион таких. Это что-то типа дерева файлов и надо раскрывать ветки при перетаскивании элемента. Ставить айдишнеки не очень. Но как видишь в примере по ссылке, я там создаю динамичский айди и не надо никакой жыквиэри. [quote=toly84;28056359]+ можно выбрать по тегу.[/quote] перебрать, может, а не выбрать? |
12-Гавайские субтитры > именно выбрать. не надо, так не надо. я уже говорил про вкусы. |
[quote=toly84;28057080]именно выбрать.[/quote] byTagName? Там ведь массив возвращается. Или я чего-то не догоняю. В общем, если можно сделать сабж без id и без задавания имени и т.п., работая чисто с объектом this, то рассказывайте. |
14-Гавайские субтитры > все что нужно в документации jQuery |
15-toly84 > это мне известно, но я [b]у Вас[/b] спрашиваю. |
16-Гавайские субтитры > я разве нанялся к кому-то? |
не хотел ничего писать, учитывая автора :) но когда прочитал, что предлагают подключать jquery из-за такой ерунды, не выдержал. Код <script type="text/javascript"> var ident_timer = false; function fstart( obj ) ** var obj_link = obj; obj.style.color='red'; ident_timer = setTimeout( function()** if ( ident_timer )** obj_link.click(); ** **, 1000); ** function fend( obj ) ** obj.style.color=''; if ( ident_timer ) ** clearTimeout( ident_timer ); ** ident_timer = false; ** </script> <div> <a href="http://yandex.ru/" onmouseover = "fstart( this );" onmouseout="fend( this );">ссылко</a> <br> <a href="http://google.ru/" onmouseover = "fstart( this );" onmouseout="fend( this );">ссылко 2</a> </div> |
18-Искусственный Интеллект1 > да, лучше бы молчал и дальше. =) Элементы лежат близко друг к другу, и ident_timer может перекрываться. Не все так просто как кажется. ЗЫ и вообще, выше была дана ссылка на решение, и там есть и этот вариант. |
19-Гавайские субтитры > вот поэтому и не хотел помогать :) Напиши html код, при котором не будет работать мой код. Если не напишешь, то ты - трепло! :) |
20-Искусственный Интеллект1 > пожалуйста: <a href="http://yandex.ru/" onmouseover = "fstart( this );" onmouseout="fend( this );">ссылко <br> <a href="http://google.ru/" onmouseover = "fstart( this );" onmouseout="fend( this );">ссылко 2</a> </a> надеюсь, осилишь =) |
21-Гавайские субтитры > даже с твоим г*вно-кодом работает (хотя чего от тебя еще ожидать :) ты только такое и может делать:) ) без всяких изменений :), просто изменил html-код, javascript оставил как есть. <script type="text/javascript"> var ident_timer = false; function fstart( obj ) ** var obj_link = obj; obj.style.color='red'; ident_timer = setTimeout( function()** if ( ident_timer )** obj_link.click(); ** **, 1000); ** function fend( obj ) ** obj.style.color=''; if ( ident_timer ) ** clearTimeout( ident_timer ); ** ident_timer = false; ** </script> <div> <a href="http://yandex.ru/" onmouseover = "fstart( this );" onmouseout="fend( this );">ссылко <br> <a href="http://google.ru/" onmouseover = "fstart( this );" onmouseout="fend( this );">ссылко 2</a> </a> </div> и нормально все работает :) |
Но чтобы вооще все точняк было, и ты не усык*лся тут, приговаривая, что у тебя все не так просто :), немного подкорректировал код: <script type="text/javascript"> var ident_timer = false; function fstart( obj ) ** var obj_link = obj; obj.style.color='red'; if ( ident_timer ) ** clearTimeout( ident_timer ); ** ident_timer = setTimeout( function()** if ( ident_timer )** obj_link.click(); ** **, 1000); ** function fend( obj ) ** obj.style.color=''; if ( ident_timer ) ** clearTimeout( ident_timer ); ** ident_timer = false; ** </script> <div> <a href="http://yandex.ru/" onmouseover = "fstart( this );" onmouseout="fend( this );">ссылко <br> <a href="http://google.ru/" onmouseover = "fstart( this );" onmouseout="fend( this );">ссылко 2</a> </a> </div> |
Походу, ИИ дурачок. Причом нервный. =) |
23-Искусственный Интеллект1 > главное, клаву не сломай =)) И прочти №5 |
25-Гавайские субтитры > я понимаю, что мозг твой слабенький, ты стараешься понять, но ничего у тебя не получается! :) Ты не в силах даже признать что мой код нормально работает :) Но попробуй хоть раз в жизни напрячь свой неразвитый мозг, и скопировать мой код и вставить его в свою страничку, а потом проверить его в браузере! Наверное на это у тебя мозга хватит? :) Или ты настолько туп, что не можешь даже выполнить копирование текста, а потом его вставить в другой текст?! :) |
[quote=Искусственный Интеллект1;28060902] 25-Гавайские субтитры > я понимаю, что мозг твой слабенький, ты стараешься понять[/quote] слабость могза можно определить хотя бы по тому, как ты читаешь сабж. По сабжу твой метод не прокатит. Хоть убейся. Тем более уже было сказано про это еще в №4. Если бы кое-то еще умел читать.... =)) |
27-Гавайские субтитры > конкретно код покажи, в котором мой метод не работает. То есть давай доказательства, а так это всё пустые слова :) |
28-Искусственный Интеллект1 > уважаемый, я уже не знаю как вам разжевывать, где и что не работает. Гиблое дело. =) ЗЫ кстати, вы кудкудахнули "[em]Напиши html код, при котором не будет работать мой код. Если не напишешь, то ты - трепло! :)[/em]" я вам написал код, при котором ваш код не работает, а вы даже не извинились за "трепло". =) |
29-Гавайские субтитры > хочешь извинений? Пожалуйста :) Гавайские субтитры, извини, но ты - трепло! :) |
30-Искусственный Интеллект1 > ты неправ. Твой код веть не работает в приведенном там примере. Хотя ты неадекват, это уже заметно, все равно не согласишся, что ты неправ. Ты же, кстати, даже на условия в сабже внимания не обратил. И к тому же в №4 есть такой же самый пример какой дал ты. Наверное ты оттудова его и слямзил =))) В общем, ты неадекватный немного. |
Текущее время: 19:34. Часовой пояс GMT +3. |