2015-10-28 4 views
-1

У меня есть следующий код в моей библиотеке JavaScript. Моя цель - сохранить исходную функцию onscroll, которая является первой строкой фрагмента кода, а затем отправьте onscroll на новую функцию. Однако я обнаружил, что wind.origonscroll, который должен быть исходной функцией прокрутки, всегда указывает на новую функцию во второй строке.Как сохранить оригинальную функцию window.onscroll в JavaScript

Вопрос: Есть ли способ, чтобы сохранить исходную функцию в коде ниже, так window.origscroll всегда указывает на функцию в первой строке кода комментировал? Я пытаюсь отслеживать, что было событием onscroll исходного окна, которое не связано с переопределением функции. Мне не нужно переопределять функцию здесь.

//window.onscroll = function() {console.log('scrolling done');} 
wind.origonscroll = window.onscroll; 
window.onscroll = function() { window.scrollTo(wind.x, wind.y); }; 
+1

Возможный дубликат [Переопределение функции JavaScript в то время как ссылки на оригинал] (http://stackoverflow.com/questions/296667/overriding-a-javascript-function-while-referencing -the-original) –

+0

Я не пытаюсь переопределить функцию. сообщение, о котором вы говорили, говорит о том, как переопределить функцию. То, что я пытаюсь сделать, это сохранить исходную функцию, на которую указывает событие onscroll окна. – Sunil

+3

Не могли бы вы добавить код, воспроизводящий вашу проблему, ваша основная идея [кажется, работает нормально] (http://jsfiddle.net/ktoq3hv2/1/). – Teemu

ответ

1

Если window.onscroll не является нулевым (если было определено ранее) он может быть спасен прочь.

Попробуйте это:

window.onscroll=function() { console.log('asd') } 
var old = window.onscroll 
window.onscroll=function() { console.log('gggg') } 
old() 
Смежные вопросы