2009-07-01 3 views
0

Ich bekomme erneute Ausführung von importierten JS-Dateien auf eine Form-Schaltfläche, die eine Funktion zum Einfügen eines DOM-Elements in Seite (in Simulation zu exe von einer Ajx Callback-Funktion) ruft. Die DOM-Einfügung verursacht eine Seitenaktualisierung, die alle Dateien vom Server erneut anfordert.Verhindern von HTTP REQUEST auf Javascript DOM Update

Nichts groß auf den Funktionsaufruf:

var addFashionVideo = function() { 

var nodeContainer = document.getElementById('vidList'); 
var mytitle = document.forms.addVideo.newVidName.value; 
var addTextNode = document.createTextNode(mytitle); 
var newLI = document.createElement('LI'); 
newLI.appendChild(addTextNode); 
nodeContainer.appendChild(newLI); 

return this; 

}; 

TARGET DIV für DOM-Update-Code ist:

<div id="ajParent" class="aj" style="width:325px;background-color:blue;color:white;"> 

<ul id="vidList"> 
<li><a href="javascript://" title="FashVid-Paris">Watch Fashion Paris Video</a></li> 
</ul> 

</div> 

ich eine Benachrichtigung auf dieser Seite platzieren und nach der Funktion zum Einfügen versucht die neue LI [seltsam erscheint die LI für einen Bruchteil einer Sekunde dann verschwindet] eine Seitenaktualisierung wird ausgelöst und meine Warnung auf der Seite führt erneut.

// Vielleicht habe ich ein Browserproblem auf diesem Computer oder ich bin nur zu einem neuen scripter // um das Problem nicht zu sehen ... jeder Kommentar geschätzt.

+0

Können Sie einen kleinen Code eines Links auf die Website posten. Ich könnte Ihre Frage falsch lesen, aber ich denke nicht, dass das Hinzufügen eines Elements zur Seite dazu führen würde, dass Ihre Skripts erneut ausgeführt werden. – MitMaro

+0

Ich habe ein Live-Header-Plugin für Firefox, also kann ich sehen, dass die Anfragen erhalten werden, nachdem ich die Senden-Taste für ein js DOM ----- Hier ist die DOM-Funktion Update var addFashionVideo = Funktion () { alert ("wir schlagen die Mode-Videofunktion hinzu"); var nodeContainer = document.getElementById ('vidList'); var mytitle = document.forms.addVideo.neuVidName.value; alert ("Eintrag des neuen Titels ist:" + mytitle); var addTextNode = document.createTextNode (mein Titel); var newLI = document.createElement ('LI'); newLI.appendChild (addTextNode); nodeContainer.appendChild (newLI); zurückgeben; }; –

+0

Die Warnungen, die im importierten head-Tag js-Dateien enthalten sind, werden ausgelöst, sobald ich dies in der DOM-Funktion der Seite aufruft. So ist alles aufgefrischt .. –

Antwort

0

Sobald Sie auf ein Formular klicken, wird die Seite neu geladen, da Sie eine GET-Anfrage mit dem Formular gemacht haben. Um das Senden des Formulars zu stoppen, müssen Sie es beim Senden auf false zurücksetzen. z.B.

document.getElementById('formname').onsubmit = function { 
    return false; 
}; 

würden Sie müssen sicherstellen, dass Formularübermittlung zu deaktivieren, so dass die Seite neu zu laden nicht, dann können Sie Ihre Ajax-Request auf Vorlage laufen und tun, was Sie muss auf Erfolg in der Ajax-Funktion.

Ich bezweifle wirklich, dass Ihre Dom Einfügung das Nachladen verursacht.