Как мне объявить объект события с событием onclick, используя Javascript (не html)? - PullRequest
3 голосов
/ 07 октября 2011

Вот мой код:

function testimage() {
  var image;

  image = new Image();

  with (image) {
    id = "page1";
    border = 0;
    name = "IllustGIF";
    useMap = "#MAP1";
    src = "sample.gif" + "?d=" + new Date();

    // The event argument here is invalid; it's to show what is the desired result.
    onclick = function() { RecordMouseClick(event, this.id); };
  }

  // attached to body tag
  document.getElementById("body_ID").appendChild(image);
}

function RecordMouseClick(event, id) {
  alert("id: " + id + ", and event object should contain mouse x- and y- coordinates clicked");
}

Мне нужно определить событие onclick в JavaScript, а не в HTML. Теперь в HTML это просто - просто передать событие в качестве аргумента функции и, вуаля, в качестве объекта события в JavaScript. Но сделать все это с нуля, все в JavaScript, без HTML, является сложной задачей для меня. Когда вызывается эталонная функция, она должна записать идентификатор элемента и координаты x и y щелчка мыши из события onclick.

Как я могу передать событие onclick, чтобы объект события действовал во время выполнения?

Спасибо.

Ответы [ 3 ]

5 голосов
/ 07 октября 2011

Вот примерная скрипка .

image.onclick = function(e) { 
    e = e || window.event;
    RecordMouseClick(e, image.id); 
};
2 голосов
/ 07 октября 2011
document.getElementById('id-of-the-html-element').onclick = function(){
// your code
};

или

function doSth(){
// your code
}

document.getElementById('id-of-the-html-element').onclick = doSth;

Подробнее об этом здесь: https://developer.mozilla.org/en/DOM/event

1 голос
/ 07 октября 2011

Попробуйте addEventListener().

image.addEventListener('click', 
    function(e) { 
        RecordMouseClick(e, this.id); 
    }, false);
...