js中如何对一个js创建的对象绑定事件?

JavaScript017

js中如何对一个js创建的对象绑定事件?,第1张

function addEventListener(el, type, fn) {

if (el.addEventListener) {

el.addEventListener(type, fn, false)

} else if (el.attachEvent) {

el.attachEvent('on' + type, fn)

} else {

return false

}

}

function append(){

var body=document.getElementsByTagName('body')[0]

var input=document.createElement('input')

input.type='text'input.value='测试'input.id='test'

addEventListener(input,'blur',function(){

//触发blur代码

})

body.appendChild(input)

}

直接用js

document.getElementById(id).onclick=function(){}//内容写在函数体里

或者用jquery

$("#a").click(function(){ })这种方法比较简单

可以用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>'

//...

}