jquery不立即更新DOM?

问题描述:

我已经看过其他一些问题,并尝试了一些选择,但仍然有点损失。jquery不立即更新DOM?

编辑 - 只是为了显示实际的AJAX调用正在取得..

$.ajax({ 
    type: 'GET', 
    url: 'AJAXget/getPostcodeCheck.ashx', 
    data: 'postcode=' + postcode, 
    async: false, 
    timeout: 10000, 
    success: postcodeCallback, 
    error: function() { 
     alert('Sorry, there was an issue contacting the server.. please retry.'); 
     return; 
    } 
}); 

我有以下的jQuery AJAX绑定功能,在这里我想展示一些东西正在加载例如..

$('#' + btnID).bind('ajaxStart', function() { 
    $('#' + btnID).append('<div>loading</div>'); 
}); 

这只是一个基本的例子..我没有使用addClass函数来元素(#btnID是一个div),但似乎没有直接发生。

我已经在函数中放置了一个alert语句来测试ajaxStart是否被触发,它似乎是..所以我猜测我缺乏对DOM的理解和/或jQuery是错!即为什么没有立即显示任何DOM更新/注入?

任何指针/想法大加赞赏!

+1

你试过'$(本).append( '

loading
');'? – 2010-11-10 19:40:53
+0

其实愚蠢不!我想我原本是这样的......但是随着切换和改变..会尝试感谢! – 2010-11-10 19:43:41

+0

其实也试过$(this)..同样的问题只是作为一个额外的..它会添加到DOM /刷新一次AJAXSTOP完成.. I.E.任何杰出的功能都完成了吗? – 2010-11-10 19:47:19

尝试编码您ajaxStart方法是这样的:

$('#' + btnID).ajaxStart(function() { 
    $(this).append('<div>loading</div>'); 
}); 

而且,看看会发生什么,当你简化你的jQuery Ajax调用此:

$.get('AJAXget/getPostcodeCheck.ashx', { postcode: postcode }, function(data) { 
    //$('#yourResultElement').html(data); 
    console.info(data); 
}); 

如果你使用萤火虫(你”重新使用Firebug吧?),点击控制台标签,看看返回的是什么。

+0

谢谢,我最终削减到真正的基础知识,只需点击一个简单的div更新..谢谢!页面:使用chrome与他们的开发工具..当然类似于萤火虫! – 2010-11-15 02:03:03

我想用户点击一个按钮后,该代码被调用。在这种情况下,你为什么不做到以下几点:

  1. 前阿贾克斯,叫你做:$( '#' + btnID).append( '装');
  2. 成功或错误的,你这样做:$( '#' + btnID)一个.remove();

我相信这种做法会奏效。

+0

感谢您的评论。我现在已经添加了一个由onclick事件触发的非常简单的弹出通知。 – 2010-11-15 02:01:11