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

在 Ajax.Updater 之后移动 event.stop()?

于 2010-03-05T16:35:01.643 回答
0

固定的。
我将代码放在一个函数中,并使其在 onSuccess 上递归。这样,当新父母加载 AJAX 时,观察者函数会考虑新创建的 div。

于 2010-03-08T10:33:54.333 回答