可以在JavaScript中绑定多个滚动事件吗?
当我试着调试它时,似乎只有最后一个事件到达bindEvents()可以在JavaScript中绑定多个滚动事件吗?,javascript,events,javascript-events,Javascript,Events,Javascript Events,当我试着调试它时,似乎只有最后一个事件到达bindEvents() var ArrayProto=Array.prototype; var nativeForEach=ArrayProto.forEach; var-breaker={}; var_has=功能(对象,键){ 返回hasOwnProperty.call(obj,key); }; 函数_each(对象、迭代器、上下文){ if(obj==null)返回; if(nativeForEach&&obj.forEach===nativeF
var ArrayProto=Array.prototype;
var nativeForEach=ArrayProto.forEach;
var-breaker={};
var_has=功能(对象,键){
返回hasOwnProperty.call(obj,key);
};
函数_each(对象、迭代器、上下文){
if(obj==null)返回;
if(nativeForEach&&obj.forEach===nativeForEach){
forEach(迭代器,上下文);
}否则如果(对象长度===+对象长度){
对于(变量i=0,l=obj.length;i=2){
var eventType=eventFieldArray[0];
var rawlelementname=eventFieldArray.slice(1.join)(“”);
var elements=(rawElementName='document')?rawElementName:rootElement.querySelectorAll(rawElementName);
如果(元素=='document'){
document.addEventListener(事件类型、函数名称);
}否则{
_每个(元素、功能(元素){
if(元素){
元素。addEventListener(事件类型、函数名称);
}
});
}
}
});
};
var self={
didScrollForSticky:函数(e){
控制台日志(“STRCKY”);
},
didScrollForTabs:函数(e){
控制台日志(“选项卡”);
},
无限:函数(e){
console.log(“无限”);
}
};
var eventsDesktop={
“滚动文档”:self.didcrollforsticky,
“滚动文档”:self.didcrollfortabs,
“滚动文档”:self.didcrollforInfinite
};
bindEvents(文档、eventsDesktop);
此声明:
var eventsDesktop = {
"scroll document": self.didScrollForSticky,
"scroll document": self.didScrollForTabs,
"scroll document": self.didScrollForInfinite
};
是对象文字的声明,其行为基本上类似于哈希表,即具有唯一键的键/值对集。当您输入三个“滚动文档”
键,并且只允许一个键时,其中一个(最后一个)会覆盖其他键
您可以使用以下数据结构之一,并相应地更新代码:
/* Change keys */
var eventsDesktop = {
"scroll document #1": self.didScrollForSticky,
"scroll document #2": self.didScrollForTabs,
"scroll document #3": self.didScrollForInfinite
};
/* Use hash-of-lists */
var eventsDesktop = {
"scroll document": [
self.didScrollForSticky,
self.didScrollForTabs,
self.didScrollForInfinite
]
};
/* List-of-lists */
var eventsDesktop = [
["scroll document", self.didScrollForSticky],
["scroll document", self.didScrollForTabs],
["scroll document", self.didScrollForInfinite]
];
/* List-of-hashes */
var eventsDesktop = [
{ name: "scroll document", callback: self.didScrollForSticky},
{ name: "scroll document", callback: self.didScrollForTabs},
{ name: "scroll document", callback: self.didScrollForInfinite}
];
/* Change keys */
var eventsDesktop = {
"scroll document #1": self.didScrollForSticky,
"scroll document #2": self.didScrollForTabs,
"scroll document #3": self.didScrollForInfinite
};
/* Use hash-of-lists */
var eventsDesktop = {
"scroll document": [
self.didScrollForSticky,
self.didScrollForTabs,
self.didScrollForInfinite
]
};
/* List-of-lists */
var eventsDesktop = [
["scroll document", self.didScrollForSticky],
["scroll document", self.didScrollForTabs],
["scroll document", self.didScrollForInfinite]
];
/* List-of-hashes */
var eventsDesktop = [
{ name: "scroll document", callback: self.didScrollForSticky},
{ name: "scroll document", callback: self.didScrollForTabs},
{ name: "scroll document", callback: self.didScrollForInfinite}
];