Prototype.js干扰Javascript

时间:2010-11-16 18:49:22

标签: php javascript html ajax prototypejs

目标:让javascript与Ajax.Updater(prototype.js)同时工作

目的:我正在创建一个显示服务器列表的网站,并且每10秒更新服务器状态(不刷新页面)。所以我使用Ajax.Updater每10秒调用一次函数来更新每个服务器的状态。 (请参阅我的其他帖子)

Get every UL element's ID for a specific class

问题:似乎是Ajax.Updater干扰了我在同一页面上使用的任何javascript(例如,下拉菜单不会再下降,花哨的弹出窗口不会弹出等等)。当我注释掉Ajax.Updater脚本时,我的javascript运行良好,没有任何问题。以下是我的ajax.updater代码:

<script type="text/javascript">
function startUpdateTimer(item) { 
   setInterval(function () { new Ajax.Updater(item.id, 'update.php?url=' + item.id); }, 10000);
}
$$('ul.SBUpdater').each(startUpdateTimer);

</script>

有谁知道为什么会发生这种情况或如何解决这个问题?此外,如果你建议以不同的方式做这件事,我愿意接受想法!

2 个答案:

答案 0 :(得分:1)

另外,我建议使用Ajax.PeriodicalUpdater而不是Ajax.Updater。它将为您处理时间,并且可以使用更少的代码完成。

答案 1 :(得分:0)

听起来你已经在你的网站上运行了一个Javascript库(可能是jQuery)。如果这是真的你应该删除PrototypeJS并使用那里已经存在的库ajax​​更新程序。使用多个js库不是最好的解决方案。