我正在使用我的弱javascript知识处理可访问的轮播,我面临语法问题。
以下是给我一个问题的部分:
events: function () {
var self = this;
this.target.on('click', '.nav-right, .right', function (e) {
e.preventDefault();
self.moveCarousel(self.target.find('.carousel-wrapper li'), 'left', 'right', function (cur, $el) {
if (cur === $el.length - 1) {
return '0';
}
return cur + 1;
});
});
this.target.on('focus', '.nav-right, .right', function (e) {
e.preventDefault();
self.moveCarousel(self.target.find('.carousel-wrapper li'), 'left', 'right', function (cur, $el) {
if (cur === $el.length - 1) {
return '0';
}
return cur + 1;
});
});
这是完整的代码,如果重要的话(121行):http://jsfiddle.net/12b63z7e/
现在,该功能的目的是什么?我只是希望幻灯片事件在点击和焦点上都会触发。问题是,根据我的编写方式,基本上复制粘贴焦点函数的click函数,JS不再触发第一个函数(我现在无法点击滑动)。所以我认为我需要在单个函数中重写这两个函数,这些函数可以在焦点和单击时滑动项目。
如果问题不明确,请问我任何问题
答案 0 :(得分:3)
您可以将空格分隔的事件名称列表传递给on(),以将相同的处理程序注册到相同元素上的多个事件
events: function () {
var self = this;
this.target.on('click focus', '.nav-right, .right', function (e) {
e.preventDefault();
self.moveCarousel(self.target.find('.carousel-wrapper li'), 'left', 'right', function (cur, $el) {
if (cur === $el.length - 1) {
return '0';
}
return cur + 1;
});
});