генерация события клика на ....... с использованием Javascript - PullRequest
1 голос
/ 26 марта 2011

У меня есть сетка div, которая представляет карту.Я хочу иметь возможность генерировать событие щелчка на любом элементе div, когда я щелкаю мышью.Я использовал следующий фрагмент кода безуспешно , хотя я получаю истинное возвращаемое значение :

var fireOnThis = document.getElementById('someID');
var evObj = document.createEvent('MouseEvents');
evObj.initEvent( 'click', true, true );
fireOnThis.dispatchEvent(evObj);

Я знаю, что щелчок не генерируется, потому что когда я щелкаю мышью, div выделяется.

Еще один побочный вопрос: возможно ли, чтобы можно было различить реальные щелчки мыши и те, которые были созданы с помощью самого javascript, и заблокировать более поздние? (Я знаю, что это звучит логически неправильно, но я не знаю много JS, таквозможно ....)

Некоторые предыстории: я делаю это для веб-сайта онлайн-игр, где я хочу автоматизировать рутинные задачи, написав расширение для Chrome .... эта часть для скрипта контента.

Редактировать: Возможно, я смотрю на проблему неправильно ... возможно, в действительности, div не прослушивает событие click, причина, по которой div не выбирается вфактическое, даже когда событие запускается .....
New Question:, учитывая событие (т. е. щелчок на конкретном div), я могу сказать, какой слушатель / элемент получил это event?

Ответы [ 4 ]

3 голосов
/ 26 марта 2011

Мой ответ на на этот вопрос SO представил эту функцию, которая может быть полезна:

function eventFire(el, etype){
    if (el.fireEvent) {
      el.fireEvent('on' + etype);
    } else {
      var evObj = document.createEvent('Events');
      evObj.initEvent(etype, true, false);
      el.dispatchEvent(evObj);
    }
}

Вот еще один вопрос на эту тему

1 голос
/ 26 марта 2011

Техническая информация и образец кода доступны здесь .Демо здесь и здесь .

0 голосов
/ 26 марта 2011

используйте событие jquery click для запуска функции.это проще.

0 голосов
/ 26 марта 2011

почему бы не использовать jquery?

$('#someID').click();

Я действительно думаю, что могут быть способы различать щелчки мышью и триггерные клики: позиция x / y сработавшего клика может не совпадать с позицией элементащелкнул.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...