我有一个页面,其中包含几个div(每个div都有一个唯一的ID和同一个类,'parent')。在每个“父”div下面,是一个带有“child”类和唯一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}
});
});
});
当然,子节点可能又是父节点。响应看起来像这样(Smand 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时,没有任何反应:(任何建议/解决方法如何解决这个问题?
答案 0 :(得分:0)
在Ajax.Updater之后移动event.stop()?
答案 1 :(得分:0)
固定。
我把代码放在一个函数中,并使它自己在onSuccess上递归。这样,当新父节点加载AJAX时,观察者函数会考虑新创建的div。