getelementbyid.display='block' Werkt niet!

Status
Niet open voor verdere reacties.

bartjuh_4

Gebruiker
Lid geworden
19 jun 2005
Berichten
225
Hallo, Ik gebruik het volgende script in een kleine ajax aplicatie:

HTML:
function do_contact(){
var naam = document.getElementById('naam').value;
var telefoon = document.getElementById('telefoon').value;
var email = document.getElementById('email').value;
var bericht = document.getElementById('bericht').value;
var code = document.getElementById('cap').value;

var query = 'contact.php?naam='+naam+'&telefoon='+telefoon+'&email='+email+'&bericht='+bericht+'&cap='+code+'&actie=contact';
ajax(query, 'contact',true);
}

function ajax(url,target,laden) {
    // native XMLHttpRequest object
    if (laden == true)
    document.getElementById('progres_bar').display = 'block';
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
        req.onreadystatechange = function() {jahDone(target);};
        req.open("GET", url, true);
        req.send(null);
    // IE/Windows ActiveX version
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = function() {jahDone(target);};
            req.open("GET", url, true);
            req.send();
        }
    }
}

function jahDone(target) {
    // only if req is "loaded"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
            results = req.responseText;
            // native XMLHttpRequest object
            document.getElementById('progres_bar').display = 'none';            
            document.getElementById(target).innerHTML = results;
        } else {
            document.getElementById('progres_bar').display = 'none';         
            document.getElementById(target).innerHTML= '<div class="longbar">Niet gevonden!</div><div style="text-align: center;" class=text>De pagina bestaat niet of moet nog worden gemaakt.</div>'+
                req.statusText;
        }
    }
}

Nu is het probleem dat het stukje met het laden zien van een loading plaatje dat hij de style display niet naar block verandert ipv none. Hij ziet de div wel maar onderneemt niks. Wat is er verkeerd aan mijn script? De volgende div moet hij veranderen:

HTML:
    <div id="progres_bar" style="display: none; z-index: 999; position: absolute; right: 5px; text-align: center;
      top: 5px; border: 1px solid black; background-color: White; padding: 15px; font-size: 14px;">
      <img src="images/loading.gif" style="border-width:0px;" />
    </div>

Alvast bedankt voor alle hulp!

Grt,

Bart
 
Je vergeet de style. Zo moet hij werken:

HTML:
document.getElementById('........').style.display = "block"
 
Ikzelf maak liever gebruik van deze functies (die werken namelijk in FF, IE6+7 en Opera):
PHP:
function toCamelCase(string) {
	var camelCaseString = "";
	for (var i = 0; i < string.length; i ++) {
		if (string.charAt(i) != "-") {
			camelCaseString += string.charAt(i);
		} else {
			camelCaseString += string.charAt(i + 1).toUpperCase();
			i ++;
		}
	}
	return camelCaseString;
}

function getStyle(element, styleName) {
	if (element.currentStyle) {
		return element.currentStyle[toCamelCase(styleName)];
	} else if (window.getComputedStyle) {
		return document.defaultView.getComputedStyle(element, null).getPropertyValue(styleName);
	}
}

function setStyle(element, styleName, value) {
    element.style[toCamelCase(styleName)] = value;
}

Aanroep:
getStyle(document.getElementById("kees"), "display");
setStyle(document.getElementById("kees"), "display", "none");
 
Het is me gelukt:D

@ aaajeetee, Ik zal daar eens naar gaan kijken;') iig bedankt:)
 
Aaajeetee, Waarom zou je moeilijk doen als het ook makkelijk kan :P. Deze methode werkt ook in IE, FF en Opera hoor :D.

Keep it Sweet and Simple,,,
 
Aaajeetee, Waarom zou je moeilijk doen als het ook makkelijk kan :P. Deze methode werkt ook in IE, FF en Opera hoor :D.

Keep it Sweet and Simple,,,

Believe me, vorig jaar tijdens mijn stageproject is naar voren gekomen dat die methode (element.style...) dus níet correct werkt.

Misschien was het probleem ook dat niet alle style-elementen opgevraagd kon worden ipv de compatibiliteit in alle browsers, maar dat weet ik (al) niet goed meer :p
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan