Полезная информация

Общайтесь со знакомыми и друзьями в нашем сообществе в Facebook.

№116-08-2013 13:01:21

FBB
Участник
 
Группа: Members
Зарегистрирован: 19-07-2013
Сообщений: 23
UA: Firefox 23.0

Обработчик события.

Есть обработчик который запускает ф-цию при загрузке страницы

Выделить код

Код:

window.addEventListener("DOMContentLoaded",Gbs,false);

в свою очередь ф-ция должна обработать событие нажатия "мыши" на кнопке с id="button"

Выделить код

Код:

function Gbs(){
   var pm=content.document.getElementById("button");
  //вариант 1 
   pm.addEventListener("MouseDown",alert("ok"), false);
  //вариант 2
   pm.onMouseDown=alert('ok');
}

Оба варианта срабатывают только при загрузке страницы. Подскажите,пожалуйста что нужно изменить чтобы событие наступало во время нажатия "мыши" на кнопку.

P.S. Скрипт работает из расширения.

Отредактировано FBB (16-08-2013 15:55:04)

Отсутствует

 

№216-08-2013 18:31:49

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 22.0

Re: Обработчик события.

FBB пишет:

pm.addEventListener("MouseDown",alert("ok"), false);

Выделить код

Код:

pm.addEventListener("MouseDown", function(event) alert("ok"), false);

- addEventListener вторым аргументом принимает ссылку на метод (делегат). В случае передачи alert("ok") в addEventListener передается результат отработки alert("ok") - void, и на выходе получаем undefined. В случае передачи function(event) alert("ok") (или, если без лямбда-синтаксиса, function(event) { alert("ok"); }) передается ссылка на анонимный метод, который вызвается при срабатывании листенера.

Отсутствует

 

№317-08-2013 10:55:53

FBB
Участник
 
Группа: Members
Зарегистрирован: 19-07-2013
Сообщений: 23
UA: Firefox 23.0

Re: Обработчик события.

Выделить код

Код:

pm.addEventListener("MouseDown", function(event) alert("ok"), false);

К сожалению не работает даже во время загрузки окна. Да и как мне подключить какую-нибудь внешнюю ф-ию? Например

Выделить код

Код:

function alrt()
{
 alert("ok");
}

Вот так не работает

Выделить код

Код:

pm.addEventListener("MouseDown", alrt, false);

Или нужно -

Выделить код

Код:

pm.addEventListener("MouseDown", alrt(event), false);
function alrt(e)
{
 alert("ok");
}

Отсутствует

 

№417-08-2013 11:24:33

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 22.0

Re: Обработчик события.

FBB пишет:

не работает даже во время загрузки окна

оно не должно работать во время загрузки окна, оно должно работать по MouseDown

FBB пишет:

Или нужно

Нет, не нужно. Еще раз прочитайте мой предыдущий постинг - в addEventListener нужно передавать не результат отработки метода, а сам метод.

Отсутствует

 

№517-08-2013 17:39:48

hydrolizer
Участник
 
Группа: Extensions
Зарегистрирован: 22-07-2009
Сообщений: 1945
UA: Firefox 22.0

Re: Обработчик события.

И да, имена ивентов - case-sensitive.
https://developer.mozilla.org/en-US/doc … nce/Events
https://developer.mozilla.org/en-US/doc … /mousedown

Отредактировано hydrolizer (17-08-2013 17:41:05)

Отсутствует

 

№619-08-2013 10:12:31

FBB
Участник
 
Группа: Members
Зарегистрирован: 19-07-2013
Сообщений: 23
UA: Firefox 23.0

Re: Обработчик события.

hydrolizer пишет:

И да, имена ивентов - case-sensitive.

Да , спасибо, здесь собака порылась.

Отсутствует

 

Board footer

Powered by PunBB
Modified by Mozilla Russia
Copyright © 2004–2011 Mozilla Russia
Язык отображения форума: [Русский] [English]