Ⅰ 使用seajs後,jquery的擴展怎麼辦
將js插件cmd模塊化(define封裝成seajs模塊,返回匿名函數,包含插件的源碼)。專
Ⅱ sea.js如何模塊化jquery.js
|....我服了你了,玉伯那個seajs上面又討論區的,就是他的github地址
另外說下,你的jquery根本沒引用到啊內
//jquery模塊jquery.js
define(function(require,exports,mole){
/*!jQueryv1.11.3|(c)2005,2015jQueryFoundation,Inc.|jquery.org/license*/
[省略容,這里全是jqueryv1.11.3的代碼,代碼完成後接下一句]
return$.noConflict(true);
});
這樣試試
Ⅲ seajs怎麼調用jquery的插件
方法一,將js插件cmd模塊化(define封裝成seajs模塊,返回匿名函數,包含插件的源碼)。
/**
* Created with JetBrains PhpStorm.
* User: ph
* Date: 13-3-11
* Time: 上午9:24
* To change this template use File | Settings | File Templates.
*/
define(function(require,exports,moudles){
return function(jquery){
(function($) {
$.fn.pri= function() {
alert($("a").attr("href"))
// 代碼區域。
};
})(jquery);
}
})
jquery庫在總js文件(調用該插件的文件)中載入。通過require("t1/jquery_pligun")()來傳遞jquery變數(參數) ,保證了jquery在調用js插件模塊之前載入
/**
* Created with JetBrains PhpStorm.
* User: ph
* Date: 13-3-11
* Time: 上午9:40
* To change this template use File | Settings | File Templates.
*/
define(function (require, exports, moudles) {
var $=require("jquery")
require("t1/jquery_pligun")($)
$(document).ready(function () {
$("a").pri()
})
})
補充:SeaJS是一個遵循CommonJS規范的JavaScript模塊載入框架,可以實現JavaScript的模塊化開發及載入機制。與jQuery等JavaScript框架不同,SeaJS不會擴展封裝語言特性,而只是實現JavaScript的模塊化及按模塊載入。SeaJS的主要目的是令JavaScript開發模塊化並可以輕松愉悅進行載入,將前端工程師從繁重的JavaScript文件及對象依賴處理中解放出來,可以專注於代碼本身的邏輯。SeaJS可以與jQuery這類框架完美集成。使用SeaJS可以提高JavaScript代碼的可讀性和清晰度,解決目前JavaScript編程中普遍存在的依賴關系混亂和代碼糾纏等問題,方便代碼的編寫和維護。
Ⅳ seajs,requirejs,reactjs,jquery是框架嗎
如下模塊通過SeaJS/RequireJS來載入, 執行結果;
define(function(require, exports, mole) {
console.log('require mole: main');
var mod1 = require('./mod1');
mod1.hello();
var mod2 = require('./mod2');
mod2.hello();
return {
hello: function() {
console.log('hello main');
}
};
});
Ⅳ jquery.1.12.3怎樣cmd,讓seajs模塊化載入呢
直接require引入就可以了。
//別名
alias:{
'jquery':'路徑xxx/jquery.1.12.3.min'
},
//需要預載入的js
preload:['jquery']
在seajs的config中增加這個。
Ⅵ seajs載入jquery時提示$is not a function該怎麼解決
將js插件cmd模塊化(define封裝成seajs模塊,返回匿名函數,包含插件的源碼)。
/**
* Created with JetBrains PhpStorm.
* User: ph
* Date: 13-3-11
* Time: 上午9:24
* To change this template use File | Settings | File Templates.
*/
define(function(require,exports,moudles){
return function(jquery){
(function($) {
$.fn.pri= function() {
alert($("a").attr("href"))
// 代碼區域。
};
})(jquery);
}
})
jquery庫在總js文件(調用該插件的文件)中載入。通過require("t1/jquery_pligun")()來傳遞jquery變數(參數) ,保證了jquery在調用js插件模塊之前載入
/**
* Created with JetBrains PhpStorm.
* User: ph
* Date: 13-3-11
* Time: 上午9:40
* To change this template use File | Settings | File Templates.
*/
define(function (require, exports, moudles) {
var $=require("jquery")
require("t1/jquery_pligun")($)
$(document).ready(function () {
$("a").pri()
})
})
補
充:SeaJS是一個遵循CommonJS規范的JavaScript模塊載入框架,可以實現JavaScript的模塊化開發及載入機制。與
jQuery等JavaScript框架不同,SeaJS不會擴展封裝語言特性,而只是實現JavaScript的模塊化及按模塊載入。SeaJS的主要
目的是令JavaScript開發模塊化並可以輕松愉悅進行載入,將前端工程師從繁重的JavaScript文件及對象依賴處理中解放出來,可以專注於代
碼本身的邏輯。SeaJS可以與jQuery這類框架完美集成。使用SeaJS可以提高JavaScript代碼的可讀性和清晰度,解決目前
JavaScript編程中普遍存在的依賴關系混亂和代碼糾纏等問題,方便代碼的編寫和維護。
Ⅶ seaJS怎麼根據IE判斷使用jquery版本
jQuery插件本質上是將命名空間掛在全局的jQuery或jQuery.fn上而非使用define定義的模塊。
JQuery的這種擴展機制同模塊化要求模塊的獨立性,以及模塊互相隔離有點沖突。
jQuery插件數目眾多,我們不打算做大量的轉換工作,為模塊化而模塊化,甚至改變插件的調用方式,
這樣對開發帶來的價值不大。只希望通過模塊載入器實現自動的依賴管理,按需載入,並且使用方式自然。
1.常見的jQuery插件的模塊化方式
把jquery插件作為一個函數返回,帶一個jquery參數,由調用者完成插件的初始化。
以jquery-themeswitch插件為例子,該插件依賴jquery.cookie插件。
/* jquery-themeswitch.js */
define(function(require) {
return function(jQuery) {
//先初始化依賴的模塊
require('./jquery.cookie')(jQuery);
//put plugin code here
}//end of function
});
2.jquery模塊化後調用方式
下面的demo對模塊的引用採用相對路徑,實際的業務開發中可以通過seajs提供的alias來重命名
(1)模塊內部使用
var $ = require('./libs/jquery');
require('./libs/jquery-themeswitch')($);
require('./libs/jquery-ui')($); //demo涉及jquery ui組件
$(document).ready(function(){ //在DOM載入完成時運行代碼
$('#elem').themeswitcher();
...
}
...
(2)在script代碼片段中
seajs.use(['./libs/jquery','./libs/jquery-themeswitcher', './lib/jquery-ui'],
function ($, themeswitcher,jqueryui){
themeswitcher($); //init jquery plugin
jqueryui($);
$(function(){ //dom ready調用的另外一種方式
$('#elem').themeswitcher()
...
});
});
優缺點對比:
優點:
* 依賴管理自動化
* 支持多個版本的jQuery使用。(需要這個優點嗎?)
缺點:
* 每次調用一次require('plugin')($),會重新初始化一次插件
* 調用方式也不是很方便,調用代碼不是很直觀
提示:可以在jQuery中添加一個cachedPlugins對象來保存載入過的插件模塊id來防止重復載入
3.另外一種插件模塊化方式
假定我們去掉jquery多版本的支持,讓每個jquery插件模塊返回$,看看代碼調用方式是否會更自然一些。
另外每個模塊只能被編譯一次,利用該特性,我們還可以做到讓每個插件只會被初始化一次。
說明:模塊編譯過程就是構建模塊的exports的過程。
還以themeswitcher為例子:
jquery-theme-switcher.js
define(function (require, exports, mole) {
var jQuery = require('./jquery');
require('./jquery-cookie');
//put plugin in code here
return jQuery;
});
(1)模塊內部使用
require('./libs/jquery-ui'); //可以不處理返回值
var $ = require('./libs/jquery-themeswitch') //返回的還是$
$(function(){
$('#elem').themeswitcher();
});
...
(2)在script代碼片段中
seajs.use(['./libs/jquery-themeswitcher', './lib/jquery-ui'],function ($){
$(function(){
$('#elem').themeswitcher()
...
});
});
4.簡化jquery插件的引用
如果你使用的插件比較多,還可以通過這樣的方式來簡化jquery插件的引用。
定義一個myjquery.js
define(function(require) {
require('some-plugin1'); //會自動載入相關的依賴插件
require('some-plugin2'); //如果記不清依賴關系,重復require也沒有影響。
require('some-plugin3');
return require('some-plugin'); //每個插件模塊都會返回$,取最後一個返回就可以了。
});
在其他的業務代碼中,你只需要引入自己定製好的myjquery.js即可。
注意不要在該文件中引入過多的模塊,避免影響性能,其他不常用的插件可以按需載入。
main.js
define(function(require) {
var $ = require('./myjquery'); //所有你定製載入的插件都已經初始化好了
//do something
Ⅷ seajs怎樣先載入jquery再載入Bootstrap
seajs載入不符合AMD規范的,要在源代碼里加define(function() {//源代碼 })