<div id="loaded-content">
@Scripts.Render("~/someScript.js")
</div>
Dies scheintWie werden alle Ereignislistener aus einer bestimmten geladenen Datei entfernt?
<div id="loaded-content">
<script src="/someScript.js"></script>
</div>
Wenn der obige Gehalt mit ajax jedes Ereignis Hörer von someScript.js
aktiv wird und bleibt, selbst geladen ist äquivalent zu sein, wenn der Inhalt später über jQuery wie so entfernt wird:
Was sollte getan werden, um zu verhindern, dass dieselben Ereignis-Listener mehrmals aktiviert werden, wenn der Inhalt ständig geladen und entfernt wird? Ich habe versucht, eine globale Variable var scriptHasRun = false;
hinzufügen, dann der folgenden Code in someScript.js
:
$(document).ready(function(){
if(scriptHasRun){
return;
}
scriptHasRun = true;
<more code>
});
Es funktioniert für someScript.js
, aber dann kam someOtherScript.js
, die die gleiche Art und Weise geladen, so zu sein scheint, die Dinge im Voraus zu verhindern, dass ich das gleiche verwendet Methode mit einer anderen Variablen var otherScriptHasRun = false;
und das zweite Mal, wenn es in der Seite geladen wird, funktioniert es nicht mehr. Es begann normal zu funktionieren, als ich den Scheck entfernte. Ich würde gerne wissen, wie man die Umstände von someOtherScript.js
repliziert, oder falls das normal ist, was dazu führen könnte, dass someScript.js
mehrfach geladen wird?
Das ist für die Bindung jedes einzelnen Elements. Im Fall von 'someOtherScript.js' löst sich alles auf, wenn ich den html entferne, der es aufgerufen hat. – Nadroev