
⚠️ 动态添加的子元素一定要放在on()方法里面,并且on()方法里面的 childSelector 必须要是 selector 的子元素,否则动态添加的元素绑定的事件依旧无效
最好是在元素生成的时候就加上事件,不然的话比较麻烦。
在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中对应的方法:
// Creating an new anchor with an Objectvar myAnchor = new Element('a', {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')
}
}})
WEB项目中,我们常常会碰到要动态对相应的对象添加事件,如下,有id="txtPrice"的文本框控件:<div>
<input
type="text"
id="txtPrice"
name
=
"txtPrice"
value
=
"0"/>
<div>
现在我们为其动态添加一事件,JS核心代码如下:
document.getElementById("txtPrice").attachEvent('onblur',
function
(){alert('添加事件成功!')})
【补充】
有时候为了实现不同浏览器之前的兼容,我们会这样写:
Code
highlighting
produced
by
Actipro
CodeHighlighter
(freeware)http://www.CodeHighlighter.com/-->1
if(window.attachEvent)
{
document.getElementById("txtPrice").attachEvent('onblur',
function
(){alert('添加事件成功!')})
}
else
{
document.getElementById("txtPrice").addEventListener('onblur',
function
(){alert('添加事件成功!')},false)
}
以上这篇JS动态给对象添加事件的简单方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)