Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript]Odświeżaj diva, jeżeli checkbox jest checked
Forum PHP.pl > Forum > Przedszkole
Maxie
Mam taki problem. Dostałem skrypt w JS, służący do odświeżania diva. Wygląda on następująco:
Kod
$("#rozmowa").show("fast").load("chat_core.php").show("fast");
        var refreshId = setInterval(function() {
            $("#rozmowa").show("fast").load('chat_core.php').show("fast");
        }, 100);
    $.ajaxSetup({ cache: false });

Jestem zielony w JavaScripcie a wolałbym gdyby odświeżało się jeżeli checkbox jest w pozycji checked. Wykombinowałem coś takiego:
Kod
if($('#refresh').attr('checked')) {
   var auto_refresh = setInterval(
    function ()
    {
    $('#rozmowa').load('chat_core.php').fadeIn("slow");
    }, 100); // refresh every 10000 milliseconds
} else {
    $('#rozmowa').load('chat_core.php').fadeIn("slow");
}]

Ale to niestety nie działa ;/ Więc co robię nie tak?
mikolaj51
Witaj,

spróbuj coś takiego, na szybko pisałem:

[JAVASCRIPT] pobierz, plaintext
  1. $(document).ready(function(){
  2. var repeat;
  3. var auto_refresh = function(){
  4. $('#rozmowa').load('chat_core.php').fadeIn("slow");
  5. };
  6. auto_refresh();
  7.  
  8. $('#refresh').change(function(){
  9. if($('#refresh').attr('checked')) {
  10. repeat = setInterval(auto_refresh, 100);
  11. }
  12. else{
  13. repeat = clearInterval(repeat);
  14. }
  15. });
  16. });
[JAVASCRIPT] pobierz, plaintext
kamil4u
Prosty przykład jak powinieneś to zrobić: http://jsfiddle.net/Bhs5U/
Maxie
Ten kod co podał mikolaj51 wygląda "dobrze". Tylko nic nie daje zaznaczenie checkbox'a o id refresh ;/.
kamil4u próbowałem do tego dodać .load('chat_core.php') oraz podmieniłem ID ;p i nic pusto.
mikolaj51
Nie tylko wygląda dobrze, ale też działa wink.gif
A dodałeś bibliotekę jQuery do strony? Masz może gdzieś wersję ogólnodostępną na stronie żeby można było zobaczyć?
Maxie
Bibliotekę dodałem, w końcu pokazuje mi ten pierwszy raz tongue.gif ale nie sprawdza mi checkbox'a ;/ mam wersję na darmowym hostingu ;] .
mikolaj51
Możesz dać link, bo jak testowałem swoje rozwiązanie na komputerze to szczerze mówiąc wydaje mi się poprawne wink.gif
Pierwszy raz wczyta ten czat, a potem w zależności od zaznaczonego pola będzie odświeżać albo nie
Maxie
http://maxie.cba.pl/AP/index.php
Zaloguj się na konto testowe, działa przez 2h :
Login: forTest
Hasło: for

Ujrzysz wtedy czat tongue.gif, który jest na tym oparty, oraz u dołu checkbox, który nie działa jak powinien.
kamil4u
I pokaż jak przerobiłeś moje smile.gif
Maxie
Kod
var test;
$('#checkbox').change(function(){
    if( this.checked ){
        test = setInterval(function(){
            $('#div').fadeOut("slow").fadeIn("slow").load('chat_core.php');
        },1000);
    } else {
      clearInterval( test );
    }
});
kamil4u
Wrzuć to online i pokaż jak działa z Twoim kodem. Dodaj też odpowiednią linię i sprawdź czy sama funkcja load się wykonuje poprawnie.
Maxie
BUMP
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.