0

いくつかの div を含むページがあります (それぞれに一意の ID と同じクラス「親」があります)。各「親」div の下には、クラス「子」と一意の ID 名 -child を持つ div があります。この DIV は、ページの読み込み時に空です。

親 DIV をクリックするたびに、次のコードが実行されます。

$$('div.parent').each(function(s){
    $(s).observe('click', function(event){
        event.stop();
        var filer = $(s).readAttribute('filer');
        var currentElement = $(s).id;
        var childElement = currentElement + '-children';
        new Ajax.Updater ({success: childElement}, root + '/filers/interfacechildren', {
        parameters: {parentId: currentElement, filer: filer}
        });
    });
});

もちろん、子ノードが再びそれ自身の親になることは可能です。応答は次のようになります (Smarty with Zend Framework):

{foreach from=$ifaces item=interface}
    <div id="{$interface->name}" filer="{$interface->system_id}" class="parent">{$interface->name}</div>
    <div id="{$interface->name}-children" class="child"></div>
{/foreach}

子内にロードされた「親」divをクリックするたびに、何も起こりません:(これを修正する方法について提案/修正はありますか?

4

2 に答える 2

0

修理済み。
コードを関数内に配置し、それ自体を onSuccess に再帰させました。このようにして、新しい親が AJAX で読み込まれると、オブザーバー関数は新しく作成された div を考慮します。

于 2010-03-08T10:33:54.333 に答える
0

Ajax.Updater の後に event.stop() を移動しますか?

于 2010-03-05T16:35:01.643 に答える