JavaScript-如何在“JavaScript”中添加对多个事件的支持;关于;功能?
我制作了一个简单的JavaScript库,其中有一个JavaScript-如何在“JavaScript”中添加对多个事件的支持;关于;功能?,javascript,Javascript,我制作了一个简单的JavaScript库,其中有一个on函数。 该库工作正常,但我想让我的on函数支持多个事件,并向所有元素添加事件。 我能做到这一点的最有效方式是什么 以下是我的on功能的代码: Q.fn.on = function(type, fn){ this[0]["on" + type] = fn; }; 试试这个: $(".el").on({ click: function() { // Do something }, mouseenter: functio
on
函数。该库工作正常,但我想让我的
on
函数支持多个事件,并向所有元素添加事件。我能做到这一点的最有效方式是什么 以下是我的
on
功能的代码:
Q.fn.on = function(type, fn){
this[0]["on" + type] = fn;
};
试试这个:
$(".el").on({
click: function() {
// Do something
},
mouseenter: function() {
// Do something
},
mouseleave: function() {
// Do something
}
});
试试这个:
$(".el").on({
click: function() {
// Do something
},
mouseenter: function() {
// Do something
},
mouseleave: function() {
// Do something
}
});
您只是将事件添加到第一个元素中,因为您使用的是
此[0]
此[0]
是此
对象中的第一项,即第一个元素。您要做的是循环遍历此
对象中的所有元素,并为每个元素添加一个事件侦听器。
要支持多个事件,您需要将“type”字符串(现在称为events
)拆分为一个数组,请在该数组中循环,并使用该数组中的每个事件附加每个元素
这应该对你想要达到的目标起作用
Q.fn.on = function(events, callback) {
// split multiple events into an array
// or push a single event into a new array
events = events.match(" ") ? events.split(" ") : [events];
// loop through the events
for(var e = 0; e < events.length; e++) {
// replace the "on" in the event, we don't need it.
ev = events[e].replace(/^on/, "");
// loop through your elements, you want to add an event listener to all of them
for(var i = 0; i < this.length; i++) {
// add your event listener to the element
this[i].addEventListener(ev, callback, false);
}
}
};
有关在JavaScript中添加和删除事件的详细信息,请访问您只是在第一个元素中添加事件,因为您使用的是此[0]
此[0]
是此
对象中的第一项,即第一个元素。
您要做的是循环遍历此对象中的所有元素,并为每个元素添加一个事件侦听器。
要支持多个事件,您需要将“type”字符串(现在称为events
)拆分为一个数组,请在该数组中循环,并使用该数组中的每个事件附加每个元素
这应该对你想要达到的目标起作用
Q.fn.on = function(events, callback) {
// split multiple events into an array
// or push a single event into a new array
events = events.match(" ") ? events.split(" ") : [events];
// loop through the events
for(var e = 0; e < events.length; e++) {
// replace the "on" in the event, we don't need it.
ev = events[e].replace(/^on/, "");
// loop through your elements, you want to add an event listener to all of them
for(var i = 0; i < this.length; i++) {
// add your event listener to the element
this[i].addEventListener(ev, callback, false);
}
}
};
有关在JavaScript中添加和删除事件的详细信息,请访问谢谢您的帮助,但我没有使用jQuery或其他库。谢谢您的帮助,但我没有使用jQuery或其他库。