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

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

№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–2020 Mozilla Russia GitHub mark
Язык отображения форума: [Русский] [English]