【发布时间】:2010-01-24 05:26:58
【问题描述】:
我有一个 Ajax.Request,我在其中使用 onLoading 和 onComplete 来显示和隐藏加载动画 gif。问题是每 10 次左右的点击,即使 ajax 请求成功返回,加载动画也无法隐藏并且只是停留在那里动画。我有许多 div 元素,每个元素都有自己的加载动画和带有 Ajax.Request 的 onclick,如下所示:
<div id="word_block_<%= word_obj.word %>" class="word_block" >
<%= image_tag("ajax-loader_word_block.gif", :id => "load_animation_#{word_obj.word}",
:style => 'display:none') %>
<a href="#" onclick="new Ajax.Request('/test/ajax_load',
{asynchronous:true, evalScripts:true,
onLoading:function() {
Element.show('load_animation_<%= word_obj.word %>')},
onComplete:function(){
Element.hide('load_animation_<%= word_obj.word %>')}});
return false;">Click Here</a>
</div>
这看起来有什么问题吗?也许我应该尝试删除内联 onclick 并使用 javascript 以编程方式添加 onclick?我真的不知道为什么会这样。我正在使用带有 ruby on rails 的原型库。
【问题讨论】:
-
您可能已经检查过了,但以防万一:您确定
word_obj.word的所有值都是唯一的吗?如果您有任何重复,那么您不能依靠Element.show和Element.hide来显示/隐藏预期的图像,而是它们可能会显示/隐藏页面上的其他图像。
标签: javascript ruby-on-rails ruby prototypejs