我试图在点击并执行一个函数后重新加载一个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重新加载,我一直在使用this link获取建议,但它似乎不适用于a jsFiddle
请注意我使用的是MooTools而不是jQuery
答案 0 :(得分:0)
你不能'重新加载div'。 div
只是整个网页上的一个元素,并且它自己没有加载的URL,因此无法重新加载。您可以使用Ajax调用设置/替换div的内容,但这绝对不是“重新加载” - 您需要明确定义URL以加载其新内容。
如果要通过从远程网址加载明确替换div
的内容,则应使用Request.HTML
代替Request.JSON
,并提供元素(或其ID) )作为update
参数:
- update - (element:defaults to 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()
的简写,所以是的,它会重新加载整个页面(或框架)。这可能是因为窗口或框架实际上具有从中加载的位置。