Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.02.2015, 13:50
Аспирант
Отправить личное сообщение для Velidan Посмотреть профиль Найти все сообщения от Velidan
 
Регистрация: 13.02.2015
Сообщений: 32

Не передается параметр в функцию
Доброго дня уважаемые коллеги. Столкнулся с проблемой и никак не могу решить. Помогите пожалуйста.
Есть кусочек кода:
Задумка такая (написал функцию плавного скролла к верху страницы при нажатии на элемент - анимацию делаю попиксельным изменением scrollTo при помощи setInterval. Хочу сделать так, что если, в момент анимации, мы покрутили колесиком - анимация остановилась).

Во общем отлавливаю прокрутку колесика, но никак не могу передать ID интервала внутрь EventListerer функции (там в z - содержится не Id интервала, а object WhellElement. (это логично ибо мы ловим как раз прокрутку колесика)

Но как мне передать в параметре Id интервала ?
Спасибо за любую помощь.
Код JavaScript
function scrollReset(scrollToTop){  //важно! поддержка в старых браузерах не гарантируется
    var z = scrollToTop;
        if ('onwheel' in document) {
            document.addEventListener ("wheel", function(z){
                alert(z);
                clearInterval(z);
            }, false);
        }
 
}
Ответить с цитированием
  #2 (permalink)  
Старый 13.02.2015, 14:06
Аспирант
Отправить личное сообщение для d.skuratovich Посмотреть профиль Найти все сообщения от d.skuratovich
 
Регистрация: 19.09.2014
Сообщений: 73

Velidan, проблема в том, что у тебя одинаковые имена переменных
Ответить с цитированием
  #3 (permalink)  
Старый 13.02.2015, 14:22
Аспирант
Отправить личное сообщение для Velidan Посмотреть профиль Найти все сообщения от Velidan
 
Регистрация: 13.02.2015
Сообщений: 32

d.skuratovich Спасибо большое за ответ.
А как правильнее сделать? (ведь я присваиваю z - scrollToTop который передается извне, а после эту z - передаю во "внутреннюю" функцию для дальнейшей работы с ним). Что я не так делаю?

Сделал вот так:
function scrollReset(scrollToTop){  //важно! поддержка в старых браузерах не гарантируется
    var id = scrollToTop ;
        if ('onwheel' in document) {
            document.addEventListener ("wheel", function(){
                clearInterval(id);
                alert(id);
            }, false);
        }

}

И все заработало. Переменная которую получила родительская ф-ция, по умолчанию доступна для "дочерней".
Не знал этого. Почитаю еще о областях видимости.

Спасибо большое за подсказку и ответ.


П.С. если не трудно - объясните пожалуйста вкратце, почему мой первый вариант с присваиванием и передачей не заработал?

Последний раз редактировалось Velidan, 13.02.2015 в 14:29.
Ответить с цитированием
  #4 (permalink)  
Старый 13.02.2015, 15:32
Профессор
Отправить личное сообщение для caetus Посмотреть профиль Найти все сообщения от caetus
 
Регистрация: 23.09.2014
Сообщений: 197

<script>
document.addEventListener("click", function(z){alert(z);},false)

</script>

в consol покажет события так же и у тебя было !!!


addEventListener // передает аргумент события !!

Последний раз редактировалось caetus, 13.02.2015 в 15:36.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не передается параметр AllReady Общие вопросы Javascript 2 08.07.2014 12:16
Передать параметр при ajax rafaello AJAX и COMET 5 10.04.2014 11:25
передать параметры в функцию jQuery AJAX Lion_astana Общие вопросы Javascript 7 21.02.2014 17:25
Как из функции вызвать другую функцию и правильно передать ей параметр Alexd Общие вопросы Javascript 3 06.05.2011 03:42
Таймер вызывающий пхп функцию или как минимум посылающий какой-то параметр syegorius Общие вопросы Javascript 1 08.09.2010 17:12