2012-09-10 4 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

Делегировать дальше до дерева дерева к элементу, который есть во время работы уже существующего блока. например, если у вас есть <div id=content>... </div> (или response, если это статический)

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

при условии, что Вы вводите свои данные там позже, это будет работать нормально.

Смежные вопросы