Wie man JQuery DatePicker arbeiten nach dynamisch geladen wird, in einer teilweisen Ansicht?

Habe ich verloren jquery-datepicker-Funktionalität in diesem Szenario...

1 - Ursprünglich hatte ich eine normale Ansicht, die fein gearbeitet, dass dieser code für das Datum-input -...

<input type="text" name="date_start" id="date_start"
                       value="@(Model.TimeStart)" />
<script language="javascript" type="text/javascript">
    $("#date_start").datepicker();
</script>

2 - Dann habe ich umgebaut, dass anzeigen in einer Teilansicht, welche dynamisch geladen mit...

$('#TargetEmptyDiv').load("/MyController/MyAction");

3 - Das partial view geladen ok, können die Daten (manuell) eingegeben und alles seine Ordnung. Das problem ist nur, dass die jquery-datepicker funktioniert nicht mehr. Ich versuchte, ordnen Sie es nach dem laden, mit diesem...

$('#TargetEmptyDiv').load("/MyController/MyAction",
                          function () { $("#date_start").datepicker(); });

Das hat nicht funktioniert.

4 - Später habe ich erfahren, dass jquery bietet die live() und delegate() Funktionen, die in der Lage sind, befestigen Sie javascript-code, um Elemente geladen "jetzt und in der Zukunft". So, ich habe versucht dies in die Dokument-Initialisierung...

<script type="text/javascript">
    $(document).ready(function () {
           $("#date_start").live("click", function () { $(this).datepicker(); });
    });
</script>

später auch...

<script type="text/javascript">
    $(document).ready(function () {
           $("#date_start").delegate("click", function () { $(this).datepicker(); });
    });
</script>

keiner von denen gearbeitet, vielleicht, weil Sie direkten Bezug zu den "click" - Ereignis, aber der datepicker ist "angeschlossen" (wenn das der richtige Begriff) auf das ganze element.

So, Frage ist:
Wie man die jquery-datepicker arbeiten, die auf Elementen geladen nach dynamischer Belastung???

Vielen Dank für Ihre Zeit!

GELÖST:
Das problem war, dass an der Unterseite der _Layout.cshtml gibt es diese Zeile...

@Scripts.Render("~/bundles/jquery")

..der lädt die minified version von jquery Bibliotheken (bereits verwiesen, auch von mir selbst).
So, die Bibliotheken wurden zweimal geladen und bekam unwirksam, die den Fehler produziert "datepicker() ist keine Funktion".

Einfach kommentieren oder löschen, die Zeile macht alle funktionieren!

  • Einfach zu starten, einfach, haben Sie inklusive jquery.ui, um sicherzustellen, datepicker zur Verfügung steht?
  • Was hat nicht funktioniert in 3?
  • Haben Sie mehr als ein element mit dem ID -date_start?
  • Die Zuordnung der datepicker auf ein click-Ereignis ist wohl keine sehr gute Idee, da machen Sie das mehrere Male, und es könnte zu Problemen oder Fehlern. undefined ist ein guter Punkt über die eindeutige id der Frage.
  • jquery.ui verwiesen. Der datepicker hat funktioniert, ok, bevor die Elemente waren, die dynamisch geladen werden in einer Teilansicht.
  • Was hat nicht funktioniert in 3 ist das jquery-datepicker-dialog-box (nicht gezeigt).
  • Versuchen Sie, diese $("[id=date_start]").datepicker(); Wenn dies für Sie arbeitet, sollten Sie ändern-IDs zu Klassen.
  • dein code funktioniert hier GEIGE
  • Sie haben versucht, rufen Sie das Skript direkt aus der teilweisen?

Schreibe einen Kommentar