js開發的小問題彙總
- 1.require js 中引入jquery插件(以cookie爲例)
require js 最基本寫法爲:
require.config({
paths: {
"jquery": "../jquery-1.11.1.min",
"domReady": "../require/domReady",
}
})
var app=require(['domReady', 'jquery'],function(doc,$){
......
})
當引入jquery的插件時,應加入shim,寫法爲:
require.config({
shim: {
'jquery.cookie': ['jquery']
}
paths: {
"jquery": "../jquery-1.11.1.min",
"domReady": "../require/domReady",
"jquery.cookie":"../jquery.cookie",
}
})
var app=require(['domReady', 'jquery',"jquery.cookie"],function(doc,$){
......
})
注意:
在require([],function(){})中,只出現在參數中,函數裏不出現
路徑中不要出現.js
- 2.require js 中引入不符合AMD規則的js(以RSA爲例)
需要用到BigInt.js中的setMaxDigits()方法,在require js中寫法爲:
require.config({
shim: {
"BigInt":{
deps:[],
exports: 'setMaxDigits'
},
}
paths: {
"jquery": "../jquery-1.11.1.min",
"domReady": "../require/domReady",
"jquery.cookie":"../jquery.cookie",
}
})
var app=require(['domReady', 'jquery','BigInt'],function(doc,$,BigInt){
......
})
調用setMaxDigits()方法時直接
BigInt(t)
設計一個倒計時函數,每隔1秒alert
function time(t) {
alert(t);
t = t - 1;
if (time >= 0) {
setTimeout("time("+ t +")", 1000);
} else {
//alert('倒計時結束!');
}
}
time(10);
發現當t=9時,VM報錯,於是改成如下寫法,一切正常
function time(t) {
alert(t);
t = t - 1;
if (time >= 0) {
setTimeout(function(){
time(t);
}, 1000);
} else {
//alert('倒計時結束!');
}
}
time(10);
可能是由於編碼不同,在ajax調用時加上contentType限制,一切就正常啦
contentType:"application/json;charset=utf-8"