Создание события onclick?
Возможно ли самому синициировать (создать) событие onclick у элемента, например, у ссылки <a>. То есть, чтобы событие onclick вызывалось не нажатием на ссылку, а из скрипта.
PS я использую Thickbox для открытия модального окна. Открывается оно только по нажатии на ссылку или кнопку. Я не смог найти, каким образом окно можно открыть именно командой внутри скрипта, а не нажимая по ссылке мышкой. Я сделал так: скрыл из виду эту ссылку, и из скрипта в нужном месте вызываю метод click(). Но как оказалось в safari click() не вызывает обработчик события onclick и окно соответственно не открывается... |
Цитата:
|
Хорошо, буду искать дальше, но вопрос остается поднятым: Можно ли создать событие onclick ?
|
Цитата:
|
Вот что за привычка, обходить вопрос стороной? По нескольким форумам прошелся, находил темы типа "как создать событие" , в темах дофига ответов, но никто на сам вопрос так и не ответил, все почему хотят решить проблему другими способами, а про суть забывают.
Вопрос остается вопросом. |
Да потому что
Цитата:
|
И что за привычка, не слушать, что им говорят. Херню какую-нибудь вобьют в голову и думают, что она единственно правильная, при том, что она абсолютно не правильная и бредовая. Какая нафиг генерация событий, если вам нужно банально открыть окно?
|
Посмотрите на название темы - написано "Создание события onclick?"
Я хочу знать как это делается, а то что мне надо открыть окошко (кстати я его уже открыл) - только для того чтобы предметную область была понятнее. Лень писать ответ - не пишите, никто не заставляет, но не обязательно об это сообщать. |
Цитата:
|
Лень порок известный, унесите его домой и там ленитесь сколько влезет, а тут форум, куда я пришел с вопросом в надежде получить дельные ответы по нему.
|
kerranswell,
Да не злись ты так. Тебе просто объясняют, что плохо так делать. Лично я не смог придумать ни одной ситуации где без этого никак нельзя обойтись. Но если так уж надо то вот: http://htmlcoder.visions.ru/JavaScript/?22 Там ближе к концу статьи есть пример. Кстати, я переписывал этот код без генерации события, и он заметно упростился. |
Цитата:
|
Цитата:
p.s. http://phpclub.ru/talk/showthread.ph...440#post719440 |
http://www.howtocreate.co.uk/tutoria...ript/domevents - тут хорошо все описано.
var fireOnThis = document.getElementById('someID'); var evObj = document.createEvent('MouseEvents'); evObj.initMouseEvent( 'click', true, true, window, 1, 12, 345, 7, 220, false, false, true, false, 0, null ); fireOnThis.dispatchEvent(evObj); |
спасибо за ответы!
|
Цитата:
|
idler, Круто твой код пашет!
var a = document.getElementById('my_a'); if (document.createEvent) { var evObj = document.createEvent('MouseEvents'); var psX = findPosX(a); var psY = findPosY(a); evObj.initMouseEvent('click', true, true, window, 1, psX, psY, 1, 1, false, false, true, false, 0, null ); a.dispatchEvent(evObj); } else { a.fireEvent('onclick'); } И ничего геморойного, все просто) |
да, да... искать надо уметь.
Я не в упрек.... Спасибо гуглу. Запрос был примерно таким: firing even in safary javascritp или firing event in webkit javascript точно запрос уже не помню. Kolyaj, думаю не стоит упрекать человека, за то что он не умеет искать, либо не может спросить гугла по английски. Думаю на русском такой информации значительно меньше. Если не можете ответить - проигнорировали бы тему... |
Цитата:
|
Извините. Это был не ответ. А в личку не надо :)
|
А зачем создавать объект события для click, если обработчик может быть вызван просто методом click() на элементе?
|
Ну у человека был образовательный интерес - раз
В webkit, как я понял click() не работает - два |
idler,
click() работает везде. |
$('#id').mouseover()
$('#id').mouseout() $('#id').keypress() $('#id').keydown() Тоже везде работают? |
idler,
Ну я говорю не о jQuery, а о стандартных методах DOM. Есть методы click(), focus(), blur() и т.д., и создавать для них отдельные объекты Event - явно лишнее. |
Я новичок. Подскажите как сделать так, что бы выпадающее меню расскрывалось после "клика", и закрывалось после повторного "клика" (ненумерованные списки).
|
делаешь меню ставишь событие onclick()
|
Цитата:
|
Чтото неполучается у меня с JS. Посмотрите, может что не так делаю.
Вот СКРИПТ: <script type="text/javascript" src=""> function open_menu() { element = document.getElementById() if (element.style.display == "none") { element.style.display = "block" } else { element.style.display = "none" } } </script> А вот код: <table align="center" width="994" height="465" cellpadding="0" cellspacing="0"> <!--DWLayoutTable--> <tr><td width="250" valign="top" class="sidebarleft"> <div class="sidebar1"> <ul class="nav"> <li><a href="#" target="_blank">Главная</a></li> <li><a href="" onClick="open_menu('sub1')">Предприятие </a> <ul id="sub1" style="display:none"> <li><a href="#" target="_blank">История</a></li> <li><a href="#" target="_blank">Задачи</a></li> <li><a href="#" target="_blank">Руководители</a></li> <li><a href="#" target="_blank">Доска почёта</a></li> <li><a href="#" target="_blank">Филиалы</a></li> </ul></li> </ul></div></td></tr></table> |
По морковину делали?
|
По морковину делали?
|
А вот и првильный код:
<script type="text/javascript" src=""> function open_menu() { var element = document.getElementById('sub1') if (element.style.display == "none") { element.style.display = "block" } else { element.style.display = "none" } } </script> <table align="center" width="994" height="465" cellpadding="0" cellspacing="0"> <!--DWLayoutTable--> <tr><td width="250" valign="top" class="sidebarleft"> <div class="sidebar1"> <ul class="nav"> <li><a href="#" target="_blank">Главная</a></li> <li><a href="" onClick="open_menu()">Предприятие </a> <ul id="sub1" style="display:none"> <li><a href="#" target="_blank">История</a></li> <li><a href="#" target="_blank">Задачи</a></li> <li><a href="#" target="_blank">Руководители</a></li> <li><a href="#" target="_blank">Доска почёта</a></li> <li><a href="#" target="_blank">Филиалы</a></li> </ul></li> </ul></div></td></tr></table> |
Часовой пояс GMT +3, время: 13:10. |