Autor Zpráva
Kuře
Profil *
Zdravím,
píšu jednoduchý kod kde jsou nespíše kolidující 2 funkce:

        $(document).ready(function () {
            $('button').click(function() {
                var val = $(this).val();
                $.ajax({
                    url: "admin_panel.php",
                    type: "POST",
                    data: {'data': val}
                });
            });
        });
        var timestamp = Number(new Date());
        $('#main_container').load('./data.php?time='+timestamp);
          var refreshId = setInterval(function() {
              var timestamp = Number(new Date());
             $('#main_container').load('./data.php?time='+timestamp);
        }, 5000);


po kliknutí na <BUTTON> se odešlou post data a zároveň se do divu načítají každých 5 sekund aktualizovaná data (button je na webu data.php)
problém je, že po načtení webu ajax funguje a posílá post data. Jakmile se ale provede Refresh, už buttonek nefunguje.
vzhledem k tomu, že po první načtení .load button ještě funguje jak má, předpokládám, že ajax koliduje s function()
protože JS zrovna nehovím, nevím jak situaci řešit...
děkuji za každou radu
Kajman
Profil
Nastavte událost pro nějaký nadřazený element, který se nezruší - tím se zapomenou i události, a delegujte v něm tu událost na buttony, viz api.jquery.com/on

Tedy řádek 2 bude něco jako
            $('body').on('click', 'button', function() {
s tím, že je lepší zaměřit v DOM menší objekt, ve kterém jsou chtěné buttony, lépe než celým body. Např. #main_container, pokud jsou všechny buttony v něm.
Kuře
Profil *
super... zas poučeno... děkuji

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0