0

私は mootools を使用しており、div (という名前response) コンテンツをロードしたいと考えています。$('response').set('html', content)コンテンツが変数であるJavaScriptで渡すdivコンテンツ。content 変数には、ボタン付きの htmlコードがいくつかあり、イベントハンドル ( click ) を作成したいと考えています。

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!');
    }
});

しかし、なぜイベントがうまくいかなかったのかわかりません。

問題は、dom オブジェクトの準備ができているときには存在しないことだと思いますが、$('undo')これを修正する方法がわかりません。

4

1 に答える 1

0

domreadyブロックの実行時に存在する要素にdomツリーをさらに上に委任します。たとえば、持っている場合<div id=content>... </div>(またはresponse静的な場合)

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

後でデータをそこに挿入することを考えると、これは正常に機能します。

于 2012-09-11T13:04:03.997 に答える