Javascript .load和.getScript之后的jQuery绑定仅在发出警报后工作

Javascript .load和.getScript之后的jQuery绑定仅在发出警报后工作,javascript,jquery,ajax,getscript,Javascript,Jquery,Ajax,Getscript,这里有一个jqueryajax向导。使用jQuery 1.7.2,但也尝试了1.5.1 <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> 加载的导航栏如下所示: <div id="menu"> <ul> <li id="nw-menu-dashboard" cl

这里有一个jqueryajax向导。使用jQuery 1.7.2,但也尝试了1.5.1

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
加载的导航栏如下所示:

<div id="menu">
<ul>
    <li id="nw-menu-dashboard" class="first"><a href="#" accesskey="1" title="">Home</a></li>
    <li ><a id="nw-menu-privatearticles" href="#" accesskey="2" title="">Articles</a></li>
</ul>
因此,如果我取消注释
//警报(“nwBase.js ran”)
//警报(“此处”),然后菜单被绑定到div,菜单单击警报可根据需要工作。但是如上所述,在绑定之前没有发出警报,它就不起作用了。我已尝试使用绑定。单击,.live


我尝试加载同步、等待等,但无法使其工作。有什么想法吗?

在取消注释
警报
功能后,一切都是您需要的。
因为在这段时间内,直到您没有按下OK按钮,您的菜单已经加载,并且您的单击功能绑定正确。

当出现响应时,调用
nwLoadMenu
函数-使用回调函数或不同的对象

我建议您通过回调重新尝试等待位(而不是通过
setTimeout
)。

您是如何实现等待的?通过
setTimeout
还是通过回调?回调应该是有效的..等待一分钟就像什么都没做一样。我本以为这和setTimeout是一样的,但我刚刚意识到,当绑定被加载时,可能没有找到任何东西。我添加了一个setTimeout,但它不起作用。至于使用回调,我不清楚如何在这种情况下实现回调。对getScript的原始调用已在回调中。我还试着将ajax:synchronous放在内容和导航加载以及getScript上,但仍然没有成功。我对jQuery/JS不是很在行,所以任何关于代码的提示都将不胜感激。@Robin Maben,你让我走上了正确的道路。我链接了来自不同负载的回调,它按预期工作。请将您的建议作为答案发布,这样我就可以相信您的答案了。
<div id="menu">
<ul>
    <li id="nw-menu-dashboard" class="first"><a href="#" accesskey="1" title="">Home</a></li>
    <li ><a id="nw-menu-privatearticles" href="#" accesskey="2" title="">Articles</a></li>
</ul>
    function nwLoad() {
    //alert("nwBase.js ran");
    nwLoadMenu();
}
function nwLoadMenu() {
      //alert("here");
      $("#nw-menu-dashboard").on("click",function() { 
          //e.preventDefault();
          alert("doDashboard");
      });   
      $("#nw-menu-privatearticles").on("click",function() { 
          //e.preventDefault();
          alert("doPrivateArticles");
      });
}