javascript - jQuery 作用域问题,无法调用函数

标签 javascript jquery

我正在尝试从 jQuery .on 调用一个函数,但是当我单击链接时我得到了这个 undefined variable 。

我想这是一个范围问题,但我无法找到解决方法。

$.modal.prototype = {
    constructor: $.modal,
    build: function() {

        var next = $('<a>');
        next.addClass('active next-slide');
        next.html ('<i class="fa fa-chevron-right"></i>');
        next.attr("href", "#");
        next.on('click', function() { nextSlide(); });

    },
    nextSlide: function() {
        alert('next');
    },
};

最佳答案

nextSlide 不是一个独立的函数,它是 $.modal 对象的一个​​方法。试试这个:

$.modal.prototype = {
    constructor: $.modal,
    build: function() {
        var _this = this;
        var next = $('<a>');
        next.addClass('active next-slide');
        next.html ('<i class="fa fa-chevron-right"></i>');
        next.attr("href", "#");
        next.on('click', function() { _this.nextSlide(); });

    },
    nextSlide: function() {
        alert('next');
    },
};

关于javascript - jQuery 作用域问题,无法调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32128619/

相关文章:

javascript - If 条件推送包含/匹配字符串的值

带 HTTPS 的 Jquery

javascript - 如何一直显示最后一个子div?

javascript - 使用 jQuery 添加具有相同类的所有值

javascript - popstate - 需要在后退按钮上点击两次才能真正返回

javascript - django 模板仅在 jquery 对话框中显示内容

jquery - 当视口(viewport)宽度小于 HTML 页面宽度时,如何让固定元素水平滚动?

javascript - 如何在 React 中实现拖放行为

javascript - 带模型的 knockout 计算列

javascript - Masonry js 扰乱了 Bootstrap 选项卡功能