$ (Document) .ready in ascx Seite nach Ajax-Rückruf
-
21-08-2019 - |
Frage
Ich bin ein kleines Problem mit diesem Setup haben hier habe ich eine Liste von .ascx
Dateien und sie alle haben unterschiedliche Aufgaben in Bezug auf die Berechnungen an die Steuerung selbst. Also auf meiner Seite .aspx
ich auf einem Ajax.ActionLink()
klicken und das wird, dass bestimmte .ascx
Datei auf dem Element basiert machen Ich klickte. Innerhalb dieser .ascx
sind 1-3 Ereignisse, davon 2 abfeuern onclick
Ereignisse und 1 onload
. Die onclick
Veranstaltung (en) sind einfacher, mit der ich in Bezug auf die Arbeit kann wie es direkt in den Kontrollen Ereignisse codiert so onclick="$("#toggleMe3").slideToggle("slow");"
und die onload
muss ausgeführt werden, wenn die .ascx
geladen i wurde diesen Aufruf in einem $(document).ready(function(){});
testen, das funktioniert gut in dem .aspx
Seite, aber sobald ich es in die .aspx
Seite versuchen sie es nicht laden und sein ideal, dass dies funktioniert, aber ich habe keine Ahnung, warum nicht. In der Tat nichts in den Script-Tags funktionieren, wenn ich direkt in die .ascx
Seite einfügen sie nur, wenn sie in die Ereignisse der Kontrolle fest einprogrammiert arbeiten, von ihnen auch einige zumindest, die onload
und onprerender
nicht feuern.
Lösung
Ich hatte das gleiche Problem, nach einem teilweisen Postback-Skript $ (document) angegeben in .ready wurde nicht ausgeführt. Ich fand Lösung hier MSDN - Pagerequestmanager-Klasse
Sieht aus wie das Hinzufügen von einem Skript wie die folgende Problem behebt
<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(myReadyFunction);
</script>
Andere Tipps
Ich habe Erfolg mit $ (document) .ready in meinem partials, die über XHR geladen werden. Sind die Ansichten, die Sie über XHR sind Laden werfen JavaScript-Ausnahmen? Oder haben sie ungültige HTML enthalten?
ich habe in der Regel meine $ (document) .ready Methode am unteren Rande meines Teils, dass ich über Ajax geladen werden, wie ...
<script type="text/javascript">
$(document).ready(function(){ callMyFunction(); });
</script>
Ich hatte eine harte Zeit zu verstehen, Ihre Frage ... aber hier geht es.
Wenn Sie laden Datum mit AJAX-Aufrufe, die $ (document) .ready () Ereignis wird nicht ausgelöst - weil die Seite bereits geladen wurde. Sie sind jetzt nur mehr Daten geladen werden.
Wenn Sie bereits die Kontrollen wissen, was apear, Vorbelastung das JavaScript, aber anstatt nur die Bindung der Click-Ereignishandler verwenden, verwenden Sie die Live-Handler.
so
$("#myControl").click(....);
verwandelt sich in
$("#myControl").live("click", ....);
Sorry, wenn dies ist nicht das, was Sie suchen.