可以用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>'
//...
}
原生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>
很简单,把id写入到这个按钮里面就好了。例如:<input data-id="6" value="删除">
然后通过xx.getAttribute("data-id")来获取。如果你用jQuery的话直接$(this).attr("data-id")来获取。
这里的data-id是你自己随意定义的,只要不和其他的属性名冲突就好。有些人习惯写item-id随便你的喜好了。