seajs 引用 jquery 和 使用插件解决方法

在这里就不介绍 seajs 是啥了,直接来讲说在 seajs 中使用jquery 和 jquery 插件遇到的问题:html

首先:【index.html 为展现页】【main.js为主体页 】【 jquery.js 为jquery库】【plugins.js为jquery插件】,它们各自是一个页面jquery

index.htmljquery插件

seajs.config({
    base:'./static/js/',
    alias:{
        'main':'main'
    }
});
//引用主体js
seajs.use('main');
View Code

事先 jquery.js 和plugins.js 须要改形成 seajs 模块代码以下ide

jquery.js 改造:模块化

(function(factory) {
    if (typeof define === 'function') {
        define('/jquery', [], factory);
    }
    else {
        factory();
    }

})(function(require) {

    //...jquery 源码

    if (require) return $.noConflict(true);
});
View Code

plugins.js改造:ui

(function(factory) {
    if (typeof define === 'function') {
        // 若是define已被定义,模块化代码
        define('plugins', ['jquery'], function(require, exports, module) {
            factory(require('jquery')); // 初始化插件
            return jQuery; // 返回jQuery
        });
    } else {
        // 若是define没有被定义,正常执行jQuery
        factory(jQuery);
    }
}(function($) {
 
 //jquery 插件代码   注意: 不包括 (function(){})(jQuery);外壳   

}));
View Code

main.js 引用jquery.js 和plugins.js:spa

define(function( require , exports , module ){

    //引入jquery 和 jquery 插件
    seajs.config({
        base : './static/js/', 
        alias : {
            'jquery':'jquery.sea.js',
            'plugins':'plugins.js'
        }
    });

    //引入jquery 和 jquery 插件
    seajs.use(['jquery','plugins'],function($){
        
        //...这里是jquery插件调用


        //平时写的代码
        $(function(){
            $(document).click(function(){
                $('body').html('');
            });
        });
    });

});
View Code

 

本文案例参考范文:http://julabs.com/blog/seajs-jquery-and-plugins/插件

相关文章
相关标签/搜索