这应该是非常直接的,但我绝对不能把我的头围绕它,如果我会感激任何帮助。我该如何让JavaScript与htm l一起使用ajax加载
我有一些JavaScript在底部的PHP主页。这个脚本所做的就是它在窗口加载时调用一个函数,并且回显导航,这很有效。
问题是,当导航。被填充,我的主页上的JavaScript无法与它交互。
//Ajax that loads the nav
window.onload = function(){
function loadContent(where,what) {
if (window.XMLHttpRequest){
var xmlhttp = new XMLHttpRequest();
} else {
var xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
}
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
document.getElementById(where).innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open('GET', what,true);
xmlhttp.send();
};
//the nav function is called directly under it
loadContent('navigator','include/navigation.php');
//after the above is loaded, any javascript written to call an element from the loaded html does not work.
};
navigation.php只是包含一些html被回显,这也很出色。
echo'
<ul class="nav navbar-nav navbar-right animate animated fadeInDown">
<li class="nav-item"><a href="#">Explore</a></li>
<li class="nav-item"><a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Select Country<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="#">Worldwide</a></li>
<li role="separator" class="divider"></li>
<li><a href="#">USA</a></li>
<li><a href="#">UK</a></li>
<li><a href="#">Nigeria</a></li>
<li><a href="#">Ghana</a></li>
<li><a href="#">Kenya</a></li>
<li><a href="#">South Africa</a></li>
</ul>
</li>
<li class="nav-item"><a href="#">Calender</a></li>
<li class="nav-item"><a href="#" data-toggle="modal" data-target="#login" id="loginbutton">Log In</a></li>
<li class="nav-item"><a href="#" id="logout">Log Out</a></li>
'
现在我的困境,现在上面已经加载的。我在window.onload函数中编写的任何JavaScript都不适用于上述任何元素。我打算提供任何帮助。使用香草js请不要jquery。谢谢
这是因为从你的Ajax调用加载HTML是不是在DOM元素..你需要做的是开始寻找的元素,其父母,例如:$(body).on('click','.nav-item',function(){}); – Naruto
[使jQuery的.on函数与AJAX加载内容一起工作]的可能的重复(http://stackoverflow.com/questions/10416689/making-jquery-on-function-work-with-ajax-loaded-content) – Naruto
你coul使用一个监听器。这样它会继续寻找页面加载后添加的任何元素 – Crecket