Если это ваш первый визит, рекомендуем почитать справку по форуму. Для размещения своих сообщений необходимо зарегистрироваться. Для просмотра сообщений выберите раздел. |
jQUERY. Клик по экрану..не по элементу. как? |
Что касается web-а... WebMaster-а Воронежа - объединяйтесь! |
|
Опции темы |
23.05.2012, 17:13 | #1 |
Форумец
Сообщений: 1,076
Регистрация: 27.11.2008
Возраст: 30
Не в сети |
jQUERY. Клик по экрану..не по элементу. как?
Такой вопрос. на сайте множетство элементов, которые рандомно могут растянуться на весь экран.
Как прописать "клик по области экрана", не зная какой элемент сейчас на переднем плане? Короче имитация тупого клика мышкой куда-нибудь. |
23.05.2012, 17:40 | #2 |
Registered User
Сообщений: 3,165
Регистрация: 25.12.2011
Возраст: 36
Не в сети |
Насколько я понял, click получает параметр eventObject. Поэтому, по идее, можно всем элементам назначить вот такую функцию click( function( eventObject ) { MyClick( eventObject ) } )
а уже в MyClick описать, что делать с элементом. При этом элемент каждый раз будет приходить разный, а действия над ним будут одинаковые. Но я не пробовал так пока делать. Попробуй. http://jquery-docs.ru/Events/click/#toptions А, не. eventObject - это, походу, объект события. А доступ к текущему элементу просто через this работает. Должно получиться. |
23.05.2012, 18:32 | #3 |
Форумец
Сообщений: 292
Регистрация: 21.01.2011
Не в сети |
Код:
window.onclick = function(e){ e.target // тот конкретный элемент, по которому ты кликнул } нужен метод Код:
event.initMouseEvent(type, canBubble, cancelable, view, detail, screenX, screenY, clientX, clientY, ctrlKey, altKey, shiftKey, metaKey, button, relatedTarget); Код:
var evt = document.createEvent("MouseEvents"); evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null); |
23.05.2012, 19:47 | #4 |
Registered User
Сообщений: 3,165
Регистрация: 25.12.2011
Возраст: 36
Не в сети |
С помощью jQuery это будет примерно так:
Код:
<body> <img name="scale_img" width="100" height="100" src="image/list/bolt.jpg" /> <img name="scale_img" width="100" height="100" src="image/list/gaika.jpg" /> <img name="scale_img" width="100" height="100" src="image/list/shurup.jpg" /> </body> Код:
var current_click_elem = null var current_zoom_elem = null var anim_elems = [] var speed = 1000 $( document ).ready( function() { SetClicks() } ) function SetClicks() { $( 'img' ).each( function () { if( this.name == 'scale_img' ) { anim_elems.push( this ) $( this ).click( function() { current_click_elem = this $.each( anim_elems, function() { if( this == current_click_elem ) { if ( current_zoom_elem == this ) { $( this ).animate( { width: '100', height: '100' }, speed ) } else { $( this ).animate( { width: '50%', height: '50%' }, speed ) current_zoom_elem = this } } else { $( this ).animate( { width: '100', height: '100' }, speed ) } } ) } ) } } ) } Последний раз редактировалось ProcXel.A; 23.05.2012 в 20:19. |
23.05.2012, 21:30 | #5 |
Форумец
Сообщений: 1,076
Регистрация: 27.11.2008
Возраст: 30
Не в сети |
Эх попробовал - да, это вариант, но опять же - элементов гора. Даже если прописать клик-событие на все, условия то нет - неизвестно по чему клик будет. А все объекты (если не на весь экран в данный момент) имеют свои функции.
Короче === забил, попроще решения поищу. Спасибо. |
23.05.2012, 22:24 | #7 |
Registered User
Сообщений: 3,165
Регистрация: 25.12.2011
Возраст: 36
Не в сети |
AlexanderSergeev, если ты точно скажешь, что хотел, то тебе помогут. Просто ты непонятно объясняешь. current_click_elem - это и есть тот элемент, по которому кликнули.
Последний раз редактировалось ProcXel.A; 23.05.2012 в 23:23. |