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.

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top