在MooTools的滚动事件上没有事件对象
No Event object on Scroll Event in MooTools?
我正在为事件对象获得一个未定义的值,我认为应该在addEvent()函数的回调中可用。这就是我正在做的。
element.addEvent('scroll', callback(event) {
console.log(event);
});
// on scroll, event is 'undefined'
我测试了相同的代码,将回调附加到click
事件,在这种情况下,事件变量被定义为您想象的那样。我遗漏了什么?我的最终目标是停止滚动的正常效果,即防止滚动,这样我就可以使用Fx.Scroll的轻松功能滚动……
如果你做得对,它会工作,但它不会传递事件,因为它是不可取消的。
callback(event)
没有意义,除非它返回一个可以在滚动时运行的函数-否则,它将抛出由于块作用域之后,它将被视为对象字面值....
在元素上滚动:
document.getElement('div').addEvent('scroll', function(event) {
console.log('div scroll');
});
div {
height: 300px;
overflow-y: scroll;
}
触发文档滚动:
document.addEvent('scroll', function(event) {
console.log('scroll document', this); // document
});
你可以试试本地的
document.addEventListener('scroll', function(event) {
event.stopPropagation();
event.preventDefault();
console.log(event);
return false;
});
…它不会停止滚动,所以事件只是一个标记,真的。
核心开发者@kentaromiura说:
此行为是已知的,并记录在这里:http://mootools.net/docs/core/Element/Element.Event#Element-NativeEvents
区分1和2的原因是1通常用于没有有趣数据的事件,例如:onload, onscroll和onresize,或者它的性能更高。例如,后两者经常被触发。
相关文章:
- 如何从jQuery的事件对象中检索属性
- 如何在JavaScript中基于事件对象获取文件名
- 如何避免在这种情况下修改事件对象
- 如何在事件处理程序中获取 javascript 事件对象
- 如果在设置侦听器之前触发了 DOMContentLoaded 事件,如何检索“事件”对象
- addEvent 给出空事件对象
- 修改鼠标事件对象的“目标”以进行事件委派
- 如何将参数传递给backbone.js中事件对象中绑定的函数
- 从ng重复奇数内部的ng点击访问事件对象
- 如何从 React 中的事件对象访问自定义属性
- 如何将事件对象传递给对象中的函数
- 正在发送事件对象
- 是否可以获得“”的事件对象;当前“;或“;最后一个“;事件,而不将其作为处理程序中的参数接收
- 如何将事件对象字符串化
- 通过angular传递关于事件预防的信息;s事件对象
- Javascript事件对象:其中是选择器
- Meteor.js:如何检索事件对象的父元素的数据属性
- JavaScript 如何重新识别事件对象变量
- 事件对象在此代码中的工作原理
- 是为响应 DOM 事件而创建的多个事件对象