js中如何对一个js创建的对象绑定事件?
答案:2 悬赏:50
解决时间 2021-03-21 04:16
- 提问者网友:话酸浅沫
- 2021-03-20 22:40
比如用js动态创建一个input,var input=document.createElement('input');<br>我要给这个input绑定 onblur事件,而且我不允许用input.onblur=test;<br>请问该怎样做?可参看如下代码:<br><input id='button1'value='appendInput'type='button'/><br><input id='button2' value='inputOnClick' type='button'/><br><script type='text/javascript'><br>var button1=document.getElementById('button1');<br>button1.onclick=append;<br>function append(){<br> var body=document.getElementsByTagName('body')[0];<br> var input=document.createElement('input');<br> input.type='text';input.value='测试';input.id='test';<br> body.appendChild(input);<br>}<br>var button2=document.getElementById('button2');<br>button2.onclick=inputClick;<br>function inputClick (){<br> var input=document.getElementById('input');<br> alert(input.value);<br>}
最佳答案
- 二级知识专家网友:旧事诱惑
- 2021-03-21 00:15
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);
}
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);
}
全部回答
- 1楼网友:一身浪痞味
- 2021-03-21 01:43
可以用js的事件委托啊。
比如你的分页生成的代码会插入到一个里,在生成html片段时为a设置一个属性用来表示页数,如:第1页
事件委托的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 = '第{#index}页';
//...
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯