原生JS的onchang是在input值变化并失去焦点的时候才会触发,参考一下:
<input type="text" id="mytext" value="" /><script type="text/javascript">
var input = document.getElementById('mytext')
if (input.addEventListener) {
input.addEventListener('change', function () {
console.log('aaaaaa')
})
}
else {
input.attachEvent('onchange', function () {
console.log('aaaaaa')
})
}
</script>
原生键盘监听事件:按下一次按键,分为三个过程,按下—按住—松开onkeydown:某个键被按下
onkeypress:某个键盘的键被按下或按住
onkeyup:某个键盘的键被松开
使用方法,一般来说,键盘监听是直接在整个页面文档上进行监听的,也就是document上
以下是原生的使用案例
//实际使用
document.onkeydown=function(e){ //对整个页面文档监听
var keyNum=window.event ? e.keyCode :e.which //获取被按下的键值
//判断如果用户按下了回车键(keycody=13)
if(keyNum==13){
alert('您按下了回车')
}
//判断如果用户按下了空格键(keycode=32),
if(keyNum==32){
alert('您按下了空格')
}
}
剩下另外两个按键方法同理
jquery的方式监听键盘事件
jquery的也分为三个过程,但是在事件名称上有所不同
keyup:某个键盘的键被松开
keydown:某个键被按下
keypress:某个键盘的键被按下或按住
可以用js的事件委托啊。
比如你的分页生成的代码会插入到一个<div id="pager"></div>里,在生成html片段时为a设置一个属性用来表示页数,如:<a href="#" data-page="1">第1页</a>
事件委托的js代码如下:
$('#pager').delegate('a', 'click', function(e){
e.preventDefault() //阻止a的默认事件
var page = $(this).data('page') //从当前a标签属性中取出页码
//处理分页,如果是跳转:
location.href = "/pagename.php?page=" + page
//如果是异步取分页数据:
var page_api = '/pagedata.php?page=' + page
$.get(page_api, function(data, textStatus, jqXHR){
//使用ajax获取数据
//拼装数据并填充到数据显示区:
$('#list-container').append( createHTML(data) )
//重新生成分页区
createPager( page )
})
})
function createHTML(data){
//拼装数据的函数
}
function createPager(curPage){
//生成分页的函数
var tpl = '<a href="#" data-page="{#index}">第{#index}页</a>'
//...
}