Javascript 如何重新计算两个相同的函数?

Javascript 如何重新计算两个相同的函数?,javascript,jquery,html,css,accessibility,Javascript,Jquery,Html,Css,Accessibility,我正在用我薄弱的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'), '

我正在用我薄弱的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行):

现在,这个函数的目的是什么?我只是希望幻灯片事件在单击和聚焦时都触发。问题是,我写它的方式,基本上是复制粘贴焦点函数的点击函数,JS不再启动第一个函数(我现在不能滑动点击)。因此,我认为我需要在一个函数中重写这两个函数,该函数可以在焦点和单击时滑动项目


如果有不清楚的地方,请询问我任何问题

您可以将事件名称的空格分隔列表传递给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;
        });
    });

您可以将一个以空格分隔的事件名称列表传递给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;
        });
    });

您可以将一个以空格分隔的事件名称列表传递给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;
        });
    });

您可以将一个以空格分隔的事件名称列表传递给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;
        });
    });

将两个事件添加到处理程序->
this.target.on('click focus'…
将两个事件添加到处理程序->
this.target.on('click focus'…
将两个事件添加到处理程序->
this.target.on)一样简单('click focus'…
将这两个事件添加到处理程序中一样简单->
this.target.on(‘点击焦点’…
damn,谢谢我现在问得很蠢。计时器允许时我会接受你的答案damn,谢谢我现在问得很蠢。计时器允许时我会接受你的答案damn,谢谢我现在问得很蠢。计时器允许时我会接受你的答案。damn,谢谢我现在问得很蠢。我当计时器允许时,将接受您的答案