在js中怎么给动态生成的元素绑定事件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在js中怎么给动态生成的元素绑定事件相关的知识,希望对你有一定的参考价值。
如题,比如通过ajax请求到了数据,然后在dom中动态把数据加入到列表中,怎么给列表添加事件?在哪里加有效?
最好是在元素生成的时候就加上事件,不然的话比较麻烦。
在jquery中,你也可以用live()和delegate()这样的方法绑定元素,是实时监听的。
但是最好还是在元素生成的时候就加上事件:
$('#btn').bind('click', function(event)/* Act on the event */
$("<li>Hello</li>").appendTo("#list").bind('click', function(event)
/* Act on the event */
console.log($(this).text());
);
);
在mootools中对应的方法:
href: 'http://mootools.net',
'class': 'myClass',
html: 'Click me!',
styles:
display: 'block',
border: '1px solid black'
,
events:
click: function()
alert('clicked');
,
mouseover: function()
alert('mouseovered');
); 参考技术A 请求回来的时候直接给上,比如我回来的就是<a onclick="hs()"></a> .而不是<a></a>.然后获取a .因为通过DOM找不到回来的元素
js如何为动态添加进来的a超级链接元素添加click事件函数
动态添加进页面的链接里都没有写 onclick=什么的,在一段代码里如何为动态添加进来的a超级链接元素都加上onclick事件,以及处理代码?
jquery可以.live这个知道。如何不用jquery只用js代码实现
//点击事件
)
);
只用javascript:
把事件与标签一起innerHTML在元素里搞定,比如:
document.getElementById('sasd').innerHTML="<a href='#' onclick='alert(Date().toLocaleString());' />";追问
只用javascript:而且不能在标签里加事件
追答document.getElementById('sasd').innerHTML="是打发斯蒂芬";
document.getElementById('sasd').getElementsByTagName('a')[0].onclick='alert(Date().toLocaleString())';
或者你可以在生成A标签时添加类名或ID,然后用document.getElementsByClassName(如果这个方法浏览器不支持的话,那你就自己写下吧)或document.getElementById
1、document.getElementById("a的ID").onclick = method1;
2、
var aObj = document.getElementById("a的ID");
if (window.addEventListener) //Mozilla系列
aObj.addEventListener('click', method1, false);
else if (window.attachEvent) //IE
aObj.attachEvent('onclick', method1);
method1为你定义的方法。
以上是关于在js中怎么给动态生成的元素绑定事件的主要内容,如果未能解决你的问题,请参考以下文章