2011-04-09 42 views
1

我正在使用Javascript对页面显示方式进行一些更改,具体取决于用户在表单中输入的内容。除了在一个元素上,这工作得很好,很花哨。那是因为这个元素是通过ajax改变的,这取决于用户在表单中选择的内容。在通过ajax创建的页面元素上运行javascript

我使用document.observe('dom:loaded', function() {运行我的JS代码,所以很明显,这一个元素JS没有工作,因为在加载dom后添加了元素。加载后在此页面元素上运行JS的最佳方式是什么?

谢谢!

回答

2

您可以处理父元素上的事件,然后当事件触发时使用event objecttarget property找出触发事件的哪个子元素,例如如果您想知道何时动态添加按钮是单击了,你可以这样做:

document.getElementById("parent").click = function(event){ 
    if(event.target.id=="myButton"){ 
     //handle click 
    } 
} 

<div id="parent"> 
    <input type="button" id="myButton" /> <!-- added dinamycally --> 
</div> 

这是利用的Event bubbling