1. 不能浏览器下的阻止跳转,阻止继续执行
<script>
<span style="font-family:ms shell dlg;"><span style="font-size: 14px; line-height: 28px;">return false; </span></span>//chrome 浏览器可以,但是Firefox不行,会在页面上打印false
e=window.event;
e.stopPropagation(); //Firefox,chrome都可以
e.cancelBubble=true; //IE 下也可以
</script>
所以理论上要停止代码继续执行。可以用
event.preventDefault(); [2014-12-05] 貌似只有这一个是可以的!其他的都不能阻止。擦。估计是jquery的版本不同引起的。那就用这个吧!来做到各个浏览器都兼容。
2. 获取textarea框中换行的数据,并转换成数组,支持各种空格和换行
如图所示:
var order_list = $("#job_input_order").val(); //获取这个元素的值
order_list = order_list.replace(/^[\r\n\s]+|[\r\n\s]+$/g,''); //用replace 正则去空
var order_data = order_list.split(/[\r\n\s]+/); //用split 正则分割成数组
3. jquery动态绑定
从jQuery 0.9几开始,忘记了。取消动态绑定live() 方法,用on() 事件方法取消。但是发现on() 也不行,动态加载的东西就是不能绑定,发现是必须要这样:
$(document).on("click", '.user-delete', function(){
confirm('确认删除这个用户嘛?') && ajax_delete($(this).attr('data-id'));
});
要用 $(document)绑定dom 的方法。第二次参数填入 绑定的标记,我用的是class 标记的。
4. 元素绑定事件获取元素里面的值
也是用jQuery来做。
比如:
<button data-id="5488413f9bb81678b2ef50ef" class="btn btn-danger user-delete">Delete user</button>
我需要在给这个元素绑定 click 事件,并获取data-id 的值:
$("button.user-delete").bind("click",function(){
var id = $(this).attr('data-id');
});
用$(this) 来获取自身对象,用attr 获取data-id 的这个属性值。就可以了。
5. 页面滚动自动ajax加载
实现方法有很多,这里一种是网上一个比较简单的,也蛮实用的,但是注意的坑是 这个range 值设为50以下,不能设为100+。不然会自动加载2次,原因不知道,反正取50就好了,也懒得去查为毛了:
loadmore = true;
$(window).scroll(function(){
var range = 50;
var srollPos = $(window).scrollTop();
var totalheight = parseFloat($(window).height()) + parseFloat(srollPos);
if(($(document).height()-range) <= totalheight && loadmore) {
//ajax方法
}
});
loadmore 来用标识可能滚几次没数据了,就标记为false,这样就不用请求ajax了。range 要取值50。
6. nodejs中使用mongo的like正则查询
where['name'] = new RegExp(name);
用RegExp来新建正则。就可以模糊查询了。
7. nodejs 中使用mongo的ObjectID查询
我用的是mongoskin第三方库来查询mogo数据。但是,发现一个坑,就是无法使用_id 直接查询,因为mongo里的_id 是ObjectID,所以必须转换,但是mongoskin又没提供这个方法,所以,悲剧,只能npm install mongodb 库,再使用这个ObjectID:
"mongodb": "~1.4.4",
再引入mongodb
var ObjectID = require('mongodb').ObjectID;
再使用:
where['_id'] = new ObjectID(_id);
这样就可以用mongoskin去查询了。
curd.find(where,field,sort,skip,limit,function(data){
}
8. nodejs 使用express 框架如何使用session
首先是必须自己另外去加载一个类库 "express-session": "~1.10.1" 先npm install 。
再在根目录下的app.js 中引入:
var session = require('express-session');
app.use(session({
secret: 'keyboard cat',
key: 'ssid',
cookie: { secure: false }
}))
这样就session就生效了。
读和写:
console.log(req.session.name);
req.session.name = 'admin';
其他的方法见官网: https://github.com/expressjs/session
9. jQuery中循环$.each 数组的使用
data = ['湖北','上海','武汉','合肥'];
$.each(data, function(){
if (this == selected_city) {
var selected = ' selected ';
}
city.append("<option value='"+this+"'"+ selected + ">"+this+"</option>");
});
循环出来的this 就是一个个元素值:湖北 上海 武汉 合肥
要是想得到key 值,其实是隐含在data里面的,0,1,2,3,
$.each(data, function(key,value){
if (key<=5) {
photos += '<a href="'+this+'" target="_blank"> <img src="'+this+'" height="45px" width="35"></a>';
}
})
这个时候得到key 就是 0 1 2 3 。value 就是
湖北 上海 武汉 合肥,当然this 也是。