Zgubiłem jquery funkcjonalność datepicker w tym scenariuszu ...Jak sprawić, aby JQuery DatePicker działał po załadowaniu dynamicznym w widoku częściowym?
1- Początkowo miałem normalnego widoku, który pracował w porządku, mając ten kod daty wejścia ...
<input type="text" name="date_start" id="date_start"
value="@(Model.TimeStart)" />
<script language="javascript" type="text/javascript">
$("#date_start").datepicker();
</script>
2- Następnie , konwertowane to widok w częściowym widoku, który jest dynamicznie obciążonego ...
$('#TargetEmptyDiv').load("/MyController/MyAction");
3- częściowym rzucie obciążenie ok, dane mogą być (ręcznie) rozpoczęło i wszystko jest w porządku. Jedynym problemem jest to, że datepicker jquery przestał działać. Próbowałem go przypisać po załadowaniu, używając tego ...
$('#TargetEmptyDiv').load("/MyController/MyAction",
function() { $("#date_start").datepicker(); });
To nie zadziałało.
4- Później nauczyłem się, że jquery udostępnia funkcje live() i delegate(), które są w stanie dołączyć kod javascript do elementów załadowanych "teraz iw przyszłości". Tak, ja tryed to w inicjalizacji dokumentu ...
<script type="text/javascript">
$(document).ready(function() {
$("#date_start").live("click", function() { $(this).datepicker(); });
});
</script>
a później także ... którego
<script type="text/javascript">
$(document).ready(function() {
$("#date_start").delegate("click", function() { $(this).datepicker(); });
});
</script>
żaden pracował, może dlatego, że bezpośrednio odwoływać się do „kliknięcia” imprezy, ale datepicker jest "dołączony" (jeśli jest to właściwy termin) do całego elementu.
Pytanie brzmi: Jak ustawić datakicker jquery na elementach ładowanych po obciążeniu dynamicznym ???
Dziękujemy za poświęcony czas!
rozwiązany: Problem polegał na tym, że w dolnej części _Layout.cshtml jest ta linia ...
@Scripts.Render("~/bundles/jquery")
..which ładuje minified wersję bibliotek jquery (już odwołanie przez siebie). Tak więc biblioteki zostały załadowane dwa razy i zostały niepoprawne, powodując błąd "datepicker() nie jest funkcją".
Po prostu komentowanie lub usuwanie tej linii, sprawia, że wszystko działa dobrze!
Wystarczy uruchomić prosty, masz włączone jquery.ui aby upewnić datepicker jest dostępny? –
Co nie działało w '3'? – Mathletics
Czy masz więcej niż jeden element o identyfikatorze 'date_start'? – undefined