【问题标题】:import and export a jquery function导入和导出 jquery 函数
【发布时间】:2017-05-07 05:03:26
【问题描述】:

我有一个带有 jquery 代码的 custom.js 文件:

$('.nav.navbar-nav > li').on('click', function(e) {
$('.nav.navbar-nav > li').removeClass('active');
$(this).addClass('active');
});

我想将此代码导出到 main.js 文件。两个文件都在同一个文件夹中。

浏览了documentation,但无法理解如何使用 jquery。

【问题讨论】:

    标签: jquery import ecmascript-6 export


    【解决方案1】:

    首先,您需要将此代码包装在一个函数中。然后你导出函数。最后在 main.js 中导入:

    custom.js

    export function foo () {
        $('.nav.navbar-nav > li').on('click', function(e) {
            $('.nav.navbar-nav > li').removeClass('active');
            $(this).addClass('active');
        });
    }
    

    main.js

    import {foo} from 'custom'
    
    foo();
    

    ECMA SCRIPT 6 modules

    另外请注意,您需要一个模块加载器(如 webpack/systemjs/requirejs 等),以及将 ES6 代码转换为 ES5 的 Babel。

    【讨论】:

    • browserify 和 babel 会完成这项工作吗?
    • @ArkadiyStepanov 是的,他们会的!
    • 我在阅读有关 browserify var fs = require("fs"); var browserify = require("browserify"); browserify("./script.js") .transform("babelify", {presets: ["es2015", "react"]}) .bundle() .pipe(fs.createWriteStream("bundle.js")); 的文档时发现了这个例子,但我似乎无法将它实现到我的任务 gulp.task('app-scripts', function() { return gulp.src('src/js/app.js') .pipe(babel({ presets: ["es2015"] })) .pipe(uglify()) .pipe(gulp.dest('build/js')); }); 你有什么资料可以帮助我吗?
    • 我已经检查过了,但它有很多我不需要的东西,例如watchify = require('watchify'), 我仅限于使用 babelify、babel、browserify 和乙烯基插件,
    • @ArkadiyStepanov 考虑使用 Webpack 而不是 browserify。它更复杂,但你会发现更多与 Babel 结合使用的示例
    猜你喜欢
    • 2017-02-23
    • 1970-01-01
    • 2018-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-12
    • 2021-09-18
    相关资源
    最近更新 更多