Javascript .load和.getScript之后的jQuery绑定仅在发出警报后工作
这里有一个jqueryajax向导。使用jQuery 1.7.2,但也尝试了1.5.1Javascript .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
<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");
});
}