Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Problem z nie działającym javascript
#1
Toungue 
Cześć, mam pewien problem, zaraz podam skrypt w którym to owy problem występuje:

Kod:
$(window).scroll(function()
{

    if($(window).scrollTop() == $(document).height() - $(window).height())
    {
        $.get($('div#div_mikroblog > a.next:last').attr('href'), function(respons) {
             var html = respons;
             $("#div_mikroblog").append(html);
        });
      
    }
});

Ten skrypt ładuje plik php gdy scroll jest na dole strony, który plik php ładuje ? Ten który jest wpisany w href elementu "a" o klasie next i jest jednocześnie ostatnim takim elementem na stronie.

Wszystko działa poprawnie, problem jest taki że gdy w władowanym pliku php daje kolejny javascript który to ma wyświetlić np. alert (nie działa).

Natomiast gdy właduje kolejny raz (ponieważ cykli władowania kolejnych plików jest wiele, wtedy wyświetla alert aktualnie władowanego (drugiego już) oraz poprzedni alert który brakował.

Władowanie plików przez javascript działa w 100% poprawnie, łącznie z javascriptem, ale od 2 władowanego w górę, pierwsze władowanie pliku php działa, ale skrypty JS na tej stronie już nie. No i jeszcze raz dla jasności, władowanie 2 raz strony i każda następna powoduje że skrypty z 1'wszego również zaczynają działać.
Odpowiedz
#2
Na moje to w żadnym miejscu nie jest wywoływany plik php. Co mówi konsola? Wyrzuca jakieś błędy? Co chcesz ociągnąć?
Odpowiedz
#3
Konsola nic nie wywala...
$.get($('div#div_mikroblog > a.next:last').attr('href')
tutaj jest plik php wywołany... ponieważ w divie o id div_mikroblog jest a o klasie next i tam jest href w którym wpisany mam plik php o który mi chodzi, on go ładuje prawidłowo, natomiast w tym pliku php jest też skrypt js który to nie chce działać... ale gdy ten sam plik wywołam ponownie, wtedy już działa. mateo moge dać ci url i opisać wszystko jeszcze raz może bardziej zrozumiale.


Uprościłem mocno skrypt:

Kod:
$(document).ready(function(){
    $('div#div_mikroblog > a.next2:last').click(
        function()
        {//$(this).attr('rel')
            $.get('/modules/content_txt/ajax_get.php', function(respons) {
                 $("#div_mikroblog").append(respons);
            });
        }
    )
});

po kliknięciu na element "a" o klasie "next2" ładuje plik ajax_get.php, ale bez wywołania skryptów JS znajdujących się w tym pliku, po kliknięciu ponownie na element a ładuje znowu ten sam plik php tylko że skrypty JS działają poprawnie.
Odpowiedz
#4
Uderz na PW.
Odpowiedz
#5
Dzięki mateo za zainteresowanie się problemem.
Wczoraj wieczorem udało mi się problem rozwiązać.

Gdyby ktoś był ciekaw, lub napotkał podobny problem u siebie:

Gdy ładujemy plik html, php czy co tam ajaxem do strony, przy użyciu jquery, a w ładowanym pliku będzie skrypt JS, on się właduje lecz nie wykona.
Aby taki skrypt się wykonał należy umieścić go w:

<script>
</script>

NIE <script type="text/javascript">

dodatkowo skrypt js najlepiej nie umieszczać w żadnej funkcji, czyli cała postać prostego alerta wyglądała by następująco:

<script>
alert("tekst");
</script>

U mnie to nie działało ponieważ wpisywałem typ="text/javascript i dodatkowo wszystkie skrypty JS'a były w odpowiednich funkcjach.
Odpowiedz


Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  Czy ilość zmiennych w javascript, jako języku interpretowanym, ma znaczenie? Jakie gburhiphop 22 8,192 09-09-2016, 21:09
Ostatni post: Ribana
  JavaScript podstawy bryndzyk 5 1,849 18-05-2013, 21:17
Ostatni post: ferrante
  JavaScript Gmaps Api Rysowanie Squezzer 0 1,036 16-05-2013, 18:18
Ostatni post: Squezzer
  itegracja lightboxa z "like button" z JavaScript SDK sakkada 4 2,142 04-01-2013, 01:39
Ostatni post: sakkada
  [JavaScript] Proszę o sprawdzenie kodu msx83 1 1,150 02-01-2013, 00:43
Ostatni post: andrzejhi

Skocz do:


Użytkownicy przeglądający ten wątek: 1 gości
Sponsorzy i przyjaciele
Tworzenie sklepów