Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Клик по элементу на странице в рамках координат (https://javascript.ru/forum/dom-window/50657-klik-po-ehlementu-na-stranice-v-ramkakh-koordinat.html)

ipatrool 06.10.2014 12:54

Клик по элементу на странице в рамках координат
 
Всем привет, такая проблема: как можно сделать нажатие по элементу, который находится в заданном интервале координат?
Объясню подробнее: на сайте есть много кликабельных элементов одинакового типа с одинаковыми значениями, но мне нужно сделать клик только по одному элементу в центре экрана. Как такое можно реализовать?

Использовал такое:
$(document.elementFromPoint(х, у)).click();


Но при даже небольшом изменении положения окна, все сбивается. Нужно задать диапазон хотя бы +/- 50px и вот тут ступор.
Подскажите пожалуйста )

ipatrool 06.10.2014 13:23

И еще вопрос в догонку: заметил, что через раз на странице грузится элемент над моим элементом, который немного опускает нужный мне элемент. Как сделать проверку на наличие этого элемента (загрузился он или нет) и тогда уже делать клик по координате?

danik.js 06.10.2014 13:24

То есть он не совсем по центру? А по css-селектору его никак не поймать?

ipatrool 06.10.2014 13:56

Если еще один элемент не прогружается - по центру, если прогружается - не совсем, сдвигается пикселей на 40-50 вниз.
По css увы никак(

danik.js 06.10.2014 13:57

Цитата:

Сообщение от ipatrool
По css увы никак(

А почему? Что именно мешает?

ipatrool 06.10.2014 14:23

Цитата:

А почему? Что именно мешает?
А как? Если все элементы идентичны и даже имеют одинаковые type и value.
Где можно почерпнуть информацию, не подскажете?

danik.js 06.10.2014 14:44

Цитата:

Сообщение от ipatrool
А как? Если все элементы идентичны и даже имеют одинаковые type и value.

Ну а как тогда ты определяешь что именно он тебе нужен?
Может у него индекс уникальный (то есть - всегда пятый по счету). Почему тебе именно по нему, а не по предыдущему надо кликнуть?

ipatrool 06.10.2014 15:04

Потому что он единственный работает, остальные - защита от автоклика по type и value, я так понимаю и никаких действий они не совершают. Помимо этого этот элемент всегда в одной и той же координате находится, окромя случая, когда через раз грузится еще один элемент над ним.

ipatrool 06.10.2014 15:53

Вобщем элемент который грузится через раз это изображение и имеет title - Картинка
Попробовал сделать проверку наличия этой самой картинки вот так:
function click() {
var image = $('<img src="/tmp/pic/3.gif"/>');
  if (image.attr('width') > 0)
  $(document.elementFromPoint(x, y)).click();
else
  $(document.elementFromPoint(x, y1)).click();
}


При таком раскладе кликается только тогда, когда картинка есть, если ее нет - кликается в ту же область в которую идет клик при наличии картинки, т.е. то, что в else не кликается вообще( ЧЯДНТ?

ipatrool 06.10.2014 16:22

И кстати, где можно почитать о том, как подцепить по css ? Мне так, для саморазвития :)


Часовой пояс GMT +3, время: 10:29.