如果你有一个div用来做输出控制台,因为内容是不断增加的,那你自然希望这个div或textarea能永远显示最下面一行:
var el = document.getElementById('someid');
el.scrollTop = el.scrollHeight;
你在setTimeout之类的时候,需要传递一个函数对象,任何传递句柄的设计都没考虑如何把参数也传进去,不止js,所以只能自己想办法:
//目标函数
function hello(args){
// code here
}
//包裹函数,返回function
function helloWithArgs(args){
return function(){
hello(args);
}
}
//正常调用
setInterval(hellowithargs(1111),1000)
1.7以前的jQuery都是用live
来绑定未来元素的事件,1.7以后引入了on
,1.9甚至直接就把live废除了。事实上,你直接把live
改成on
是不行的,文档很明确地说明on
绑定的是当前页面上的元素,所以要实现跟以前的live
一样的行为,需要严格按如下格式:
$(parent).on(evtname,child,fn);
//比如,绑定.item元素的click事件,这么写是不行的:
$('.item').on('click',function(){/*code here*/})
//随便找其一个父元素改成如下:
$('body').on('click','.item',function(){/*code here*/});