2009-09-11 96 views
0

我'真的很困惑,不知道怎么弄的,也许你可以帮我:)jQuery的回调和嵌套问题

I'e由一个HTML页面,它加载外部内容到菜单一个div(全部用jquery和ajax负载完成)。

如果我想添加第二个函数,没有任何反应,并且我不确定嵌套是否正确。

这里有两个函数,第一个加载一个完整的html页面,第二个加载一个外部div到前一个加载文件的div(希望我描述了它,以便您可以理解它:))(numRand是一个随机数,对于这个问题不重要)。

function changeMenu(menupunkt) { 
$(function(){ 
    $('#mainContent').fadeOut('fast', function(){ $("#mainContent").load(menupunkt+".html?"+numRand);}); 
    $('#mainContent').fadeIn('fast');}); 
    return false; 

}

这里的第二个代码:

function changeSubMenu(submenupunkt,subdiv) { 
    $(function(){ 
     $('#htmlContainer').fadeOut('fast',function(){ $("#htmlContainer").load(submenupunkt+".html?"+numRand+" div#"+subdiv);}); 
     $('#htmlContainer').fadeIn('fast');}); 
     return false; 

}

我想这两个功能结合起来,这样我可以调用一个函数:

someFunction(menupunkt,submenupunkt,subdiv) 

这应该先加载menupunkt.html,如果这个动作已经完成,它应该加载div。

如果我只想加载menupunkt并且没有submenupunkt或subdiv,我该如何调用该函数?

我希望我可以解释我的问题,这样你们可以跟着它,有点复杂,我知道:)

预先感谢您!

回答

1

首先

$(function() { .... code here .... }); 

$(document).ready(function() { .... code here .... }); 

其是设置功能时,DOM已加载到执行的一个jQuery方式简写。你正在使用这个功能changeMenuchangeSubMenu这是不必要的(除非你正在执行这两个功能,当一个页面开始加载,但这将是一个奇怪的方式来设置)。

load()命令采用回调函数,该函数将在加载完成时执行。例如,

$("#mainContent").load(menupunkt+".html?"+numRand, [callback here]); 

[callback]可以是匿名函数(内联函数)或命名功能。

希望这有助于