2012-09-10 35 views
0

我正在使用mootools,我想加载一个div(名为response)的内容。 div内容我通过JavaScript与$('response').set('html', content)其中内容是可变的。在内容变量我有一些HTML 代码与按钮并希望创建一个事件句柄(单击)。mootools使用函数加载内容

我有一个JSON请求加载并传递到元素的内容:

<div id="undo"> 
    <ul> 
    <li> <button value="1">foo</button> </li> 
    <li> <button value="2">bar</button> </li> 
    </ul> 
</div> 

我的JavaScript看起来像

$('undo').addEvents({ 
    'click:relay(button)': function(ev, element){ 
     alert('a button clicked!'); 
    } 
}); 

,但我不知道为什么事件没有工作。

我认为问题是$('undo')不存在,当dom对象准备好了,但我不知道如何解决这个问题。

+0

您可以尝试将javascript添加到添加到页面的html内容中。(我怀疑这会工作,但它值得尝试) – Jozzeh

+0

代表进一步委托给存在的元素。例如。 '$('content')。addEvent('click(relay(#undo button)',fn)' –

回答

0

将dom树进一步委托给在domready block运行时存在的元素。例如,如果你有<div id=content>... </div>(或response如果它是静态的)

document.id('content').addEvents({ 
    'click:relay(#undo button)': function(event, element){ 
     event.stop(); 
     console.log(element.get('value')); 
    } 
}); 

给你注入你的数据存在以后,这将正常工作。