繁体   English   中英

完成后的AJAX重新加载div

[英]AJAX reload div after complete

单击并执行函数后,我只想重新加载一个div。

$('newThread').addEvent('submit', addThread);

function addThread(e){
    e.stop();
    var threadRequest = new Request.JSON({
        url: 'control.php?action=createThread',
        onSuccess: createThreadSuccess
    }).post(this);
}

function createThreadSuccess() {
    new Element('span',{
        'text':'Post successful.'
    }).inject($(threadList)); 

我一直在使用location.reload(true); 但是我是否正确地说这将重新加载整个页面,而不仅仅是重新加载div?

一旦执行了createThreadSuccess我希望重新加载threadList div,我一直在使用此链接寻求建议,但在jsFiddle中似乎不起作用

请注意,我使用的是MooTools NOT jQuery

您不能“重新加载div”。 div只是整个网页上的单个元素,它本身没有加载它的URL,因此无法重新加载。 您可以使用Ajax调用来设置/替换div的内容,但这绝对不是“重新加载”-您需要显式定义URL来加载其新内容。

如果要通过从远程URL加载div的内容来显式替换div的内容,则应使用Request.HTML而不是Request.JSON ,并提供元素(或其ID)作为update参数:

  • update-(元素:默认为null)在请求完成时将请求的响应文本插入其中的元素。

如果您只是想在不进行远程加载的情况下替换元素的内容,则只需执行以下操作:

$('id-of-div').set('text', 'Text to be placed inside the element');

要么:

$('id-of-div').set('html', '<p>HTML ending up <em>inside</em> the div</p>');

或像使用new Element调用一样构建整个子树。

至于第二个问题: location.reload()只是window.location.reload()简写,所以是的,它将重新加载整个页面(或框架)。 可能是因为窗口或框架实际上具有从其加载的位置。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM