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"