我有一段代碼允許ajax在點擊後運行。 一旦div被點擊後,ajax不僅會運行,而且div會將類從'statusOption'更改爲'statusOptionActive'。Javascript - 如何擴展此腳本以合併其他班級更改?
到目前爲止,這一切都看起來很好,但我撞到了牆上。我需要添加一個第三個div,它也有類一旦點擊改變。你可以看到我的新的div也在代碼:
我當前工作的JavaScript爲2周的div:
<script>
window.onload = function() {
var basics = document.getElementById('basics'),
photos = document.getElementById('photos');
basics.onclick = function() {
loadXMLDoc('indexBasics');
var otherClasses = photos.className;
if (otherClasses.contains("Active")) {
basics.className = 'statusOptionActive';
photos.className = 'statusOption';
}
}
photos.onclick = function() {
loadXMLDoc('indexPhotos');
var otherClasses = basics.className;
if (otherClasses.contains("Active")) {
photos.className = 'statusOptionActive';
basics.className = 'statusOption';
}
}
function loadXMLDoc(pageName)
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("centreCont").innerHTML=xmlhttp.responseText;
}
}
function get_query()
{
var url = location.href;
var qs = url.substring(url.indexOf('?') + 1).split('&');
for(var i = 0, result = {}; i < qs.length; i++){
qs[i] = qs[i].split('=');
result[qs[i][0]] = decodeURIComponent(qs[i][1]);
}
return result;
}
xmlhttp.open("GET","../profile/" + pageName + ".php?user=" + get_query()['user'],true);
xmlhttp.send();
}
}
</script>
這裏是我使用的div,所在班換一次點擊,AJAX是積極的。最後一個div也是需要添加到腳本中的那個:
<div id="basics" class="statusOptionActive" onclick="loadXMLDoc('indexBasics')">Basics</div>
<div id="photos" class="statusOption" onclick="loadXMLDoc('indexPhotos')">Photos</div>
<div id="favorites" class="statusOption" onclick="loadXMLDoc('indexFav')">Message User</div>
////////////我試圖讓自己無法運行。這裏是我的代碼////////
<script>
window.onload = function() {
var basics = document.getElementById('basics'),
photos = document.getElementById('photos'),
messages = document.getElementById('messages');
basics.onclick = function() {
loadXMLDoc('indexBasics');
var otherClasses = ('photos.className', 'messages.className');
if (otherClasses.contains("Active")) {
basics.className = 'statusOptionActive';
photos.className = 'statusOption';
messages.className = 'statusOption';
}
}
photos.onclick = function() {
loadXMLDoc('indexPhotos');
var otherClasses = ('basics.className', 'messages.className');
if (otherClasses.contains("Active")) {
photos.className = 'statusOptionActive';
basics.className = 'statusOption';
messages.className = 'statusOption';
}
}
messages.onclick = function() {
loadXMLDoc('indexMessages');
var otherClasses = ('basics.className', 'photos.className');
if (otherClasses.contains("Active")) {
photos.className = 'statusOption';
basics.className = 'statusOption';
messages.className = 'statusOptionActive';
}
}
function loadXMLDoc(pageName)
{
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("centreCont").innerHTML=xmlhttp.responseText;
}
}
function get_query(){
var url = location.href;
var qs = url.substring(url.indexOf('?') + 1).split('&');
for(var i = 0, result = {}; i < qs.length; i++){
qs[i] = qs[i].split('=');
result[qs[i][0]] = decodeURIComponent(qs[i][1]);
}
return result;
}
xmlhttp.open("GET","../profile/" + pageName + ".php?user=" + get_query()['user'],true);
xmlhttp.send();
}
}
</script>
什麼是您在添加第三DIV的代碼問題?顯示你已經嘗試過,爲什麼它不起作用? – Barmar
我已經將我的嘗試添加到了我的問題中,以查看我可能會出錯的地方 – user2527750
爲什麼在設置新課程之前需要檢查其他課程?你在新版本中檢查其他類的代碼都是錯誤的,但它甚至不需要。 – Barmar