2014-11-13 2 views
1

Вот проблема:добавить ошибку MouseWheel EventListener

У меня есть функция, которая должна возвращать ничего ... это называется:

function zoom(event){ 
    alert("wheel delta : "+event.wheelDelta); 
    return false; 
} 

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

element.addEventListener("mousewheel",zoom,false); 

элемент является тегом svg. но функция zoom никогда не вызывается, я получаю только это сообщение:

TypeError: Argument 2 of EventTarget.addEventListener is not an object. 

что я делаю неправильно?

Спасибо за помощь :)

EDIT: здесь весь код:

function ZoomMain(){ 
var zoom = 0; 
var main; 
var clicks = 0; 
this.click = function(event,svg){ 
    if(svg){ 
     switch(clicks%2){ 
      case 0 : 
       main = svg; 
       main.addEventListener("mousewheel",zoom,false); 
       clicks++; 
      break; 
      case 1 : 
       main.removeEventListener("mousewheel",zoom,false); 
       clicks++; 
      break; 
     } 
    }else{ 
     alert("ERROR"); 
    } 
}; 

function zoom(event){ 
    alert("wheel delta : "+event.wheelDelta); 
    return false; 
} 
} 
+0

Можете ли вы показать, как «ZoomMain' потребляется и где вы подключаете' this.click' щелкнуть обработчик события. Краткий обзор вашего плана также оценен :) – sabithpocker

+0

ему понадобятся сотни строк ...:/it is really ... loong ...:/(приглашение в чат) – Julo0sS

ответ

1

попробовать

if(typeof zoom === "function"){ 
    element.addEventListener("mousewheel",zoom,false); 
} 
else{ 
    alert(zoom); 
} 

если zoom не function вероятно, что это вопрос сфера. Добавьте дополнительный код для получения дополнительной справки.

PS: Это не решение проблемы, а решение для отладки! Если вы в порядке с инструментами разработчика, dubyg использует это, чтобы узнать, имеет ли значение zoom.

on click on my element, i try to add an event listener on mousewheel 

Вставить обработчик события клика и как вы связывание mousewheel обработчика событий внутри обработчика события щелчка. Также покажите, где zoom определяется относительно них.

http://jsfiddle.net/vucfrfke/3/

глупый вопрос, вы повторно объявлен zoom

+0

Я отредактировал функцию масштабирования Результатом является предупреждение. .. поэтому typeof не считается функцией ... – Julo0sS

+0

проверить последний запрос, который я сделал, добавить код, в котором вы указали 'zoom', где вы привязываете' click' и как вы связываете 'mousewheel' внутри' click' event обработчик. – sabithpocker

+0

вот код :) – Julo0sS