Forum Coders' city Strona Główna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Potrzebuję szybkiej odpowiedzi na moje pytanie... Zasady

[JS] msDropDown nie działa, gdy select jest w pliku ładowanym dynamicznie



 
Odpowiedz do tematu    Forum Coders' city Strona Główna -> ECMAScript
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
marcinv1
Gość





PostWysłany: Pią Lip 03, 2015 1:40 pm  OP    Temat postu: [JS] msDropDown nie działa, gdy select jest w pliku ładowanym dynamicznie Odpowiedz z cytatem Pisownia

Hej!

Mam następujący problemy. Korzystam z dodatku msDropDown opartego na jquery. Skrypt generuje bardzo ładne listy z selecet. Problem w tym, że gdy taką listę select mam w pliku, który jest dynamicznie ładowany przez jquery, wtedy msDropDown nie działa.

Przykład:
Jeśli mam takiego selecta:
Kod:

<select id="test">
<option>test1</option>
<option>test2</option>
</select>



Wtedy wywołanie msDropDown takim kodem
Kod:

  <script language="javascript">
$(document).ready(function(e) {
try {
$("body select#test").msDropDown();
} catch(e) {
alert(e.message);
}
});
</script>



działa elegancko.

Problem pojawia się, gdy np. poniższym skryptem dynamicznie ładuję stronę pomiędzy DIV o id content

Kod:
<script>
        function SubmitForm() {

        var wybor= $("#wybor").val();

$.post("przetwarzanie.php", { wybor: wybor},
           function(data) {
$('#content').load('przetwarzanie.php',{ wybor: wybor});
           });

        }
</script>


Jeśli wspomiany select znalazłby się właśnie w pliku przetwarzanie.php, to msDropDown nie działa w ogóle, nawet jeśli skrypt go wywołujący umieszczę właśnie tam. Jak wymusić działanie msDropDown? Dzięki!
Powrót do góry
Chemikk



Dołączył: 26 Sty 2008
Posty: 539
Skąd: Wrocław

PostWysłany: Pią Lip 03, 2015 6:45 pm      Temat postu: Odpowiedz z cytatem Pisownia

Przeglądarka to nie wróżka i nie ma szklanej kuli, żeby wiedzieć jak się zawsze zachować. O ile dobrze rozumiem twój problem, to:

1. Po wczytaniu strony uruchamiasz kod JS dla `msDropDown`
2. Dynamicznie doczytujesz kod HTML i podmieniasz ten kod, na którym zaaplikowałeś `msDropDown`
3. Sprawdzasz i kod nie działa - bo powinien nie działać.

Nie możesz oczekiwać od przeglądarki, że po tym, jak podmienisz jej całą zawartość, to kod uruchomiony na początku, będzie działał ciągle (da się tak, ale uważam, że przy aktualnym stanie Twojej wiedzy, zrobiłbym Ci krzywdę tłumacząc tamten sposób).

To co musisz zrobić, to zaaplikować kod ponownie, na pobranym fragmencie. Wtedy na pewno zadziała. Nieco innym rozwiązaniem.

_________________
Chętnie pomogę z D, Ruby on Rails, JavaScript/CoffeeScript, CSS/SASS

“There are only two hard things in Computer Science: cache invalidation and naming things.”
Phil Karlton
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email Odwiedź stronę autora Numer GG
Wyświetl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Główna -> ECMAScript Wszystkie czasy w strefie CET (Europa)

Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Możesz dodawać załączniki na tym forum
Możesz pobierać pliki z tego forum




Debug: strone wygenerowano w 0.03638 sekund, zapytan = 11
contact

| Darmowe programy i porady Jelcyna | Tansze zakupy w Helionie | MS Office Blog |