Autor Zpráva
Lukerus
Profil
Dobrý den,
už jsem úplně v koncích. Tvořím web pomocí jQuery a jQuery UI a když to odzkouším na domácím serveru, funguje bezvadně, když to ale nahraji na webzdarma, tak to nefunguje (http://musica-candida.wz.cz/index.php). Situace je asi taková:
Mám stránku, v té mám menu novinek, které používá jQuery a celé menu vkládám pomocí PHP (include()). Když ale jQuery načtu v hlavičce stránky, tak mi menu nefunguje, kdž ho ale vložím do souboru, který includuju, funguje bez problému. Na této stránce jQuery UI nepoužívám.
Pak mám další stránku s nějakým článkem a tam nefunguje jQuery ani jQuery UI, ať ho načtu kdekoliv. Říkal jsem si, že problém bude v tom, že ho načítám dvakrát (jednou v menu novinek a jednou v hlavičce stránky), tím to ale není. Prosím poraďte, je to pro mě záhada, jelikož doma to funguje...

Díky za rady Lukáš Červený

PS: Momentálně na stránkách mám ještě staré novinky, které jQuery UI nepoužívají. JQuery UI potřebuji kvůli dialogovým oknům. CSS mám vlastní upravené, samotné jádro používám z googlu.

Hlavička stránky s článkem:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Musica Candida | Článek</title>
<link rel="shortcut icon" href="favicon.ico">
<script language="javascript" type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script language="javascript" type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.18/jquery-ui.min.js"></script>
<link rel="stylesheet" href="./css/ui-lightness/jquery-ui-1.8.20.custom.css" type="text/css" />
<link rel="stylesheet" href="menu.css" type="text/css"  />
<link rel="stylesheet" href="novinky.css" type="text/css"  />
<link rel="stylesheet" href="styl.css" type="text/css"  />
<script type="text/javascript" src="obrazky.js"></script>
</head>

Funkce, která nefunguje:

<script type="text/javascript">
function validace(formular) {
    if (formular.jmeno.value=='') {
        var $dialog = $('<div></div>')
        .html('Musíte vyplnit vaše jméno!')
        .dialog({
            autoOpen: true,
            title: 'Varování',
            resizable: false,
            show: { effect: 'drop', direction: "up"},
            buttons: { "Ok": function() { $(this).dialog("close"); } }
        });
        formular.jmeno.focus();
        return false;
    }
    else if (formular.komentar.value=='') {
        var $dialog = $('<div></div>')
        .html('Musíte napsat nějaký komentář!')
        .dialog({
            autoOpen: true,
            title: 'Varování',
            resizable: false,
            show: { effect: 'drop', direction: "up"},
            buttons: { "Ok": function() { $(this).dialog("close"); } }
        });
        formular.komentar.focus();
        return false;
    }
    else
    return true;
}        
</script



Teď mě to trklo!!
Omlouvám se za spam.
Chybí mi tam $(document).ready()
Chamurappi
Profil
Reaguji na Lukeruse:
Momentálně na stránkách mám ještě staré novinky, které jQuery UI nepoužívají.
Hodila by se spíš živá ukázka toho, co nefunguje.

JQuery UI potřebuji kvůli dialogovým oknům.
Určitě potřebuješ dvousetkilovou knihovnu kvůli takové drobnosti?
Lukerus
Profil
Přijde mi to jako nejjednodušší řešení. Když jsem to dělal sám, dialogové okno mi poskakovalo po stránce, nešlo pořádně přetahovat... Nehledě na to, že knihovnu na serveru vůbec nahranou nemám
panther
Profil
Lukerus:
Když jsem to dělal sám, dialogové okno mi poskakovalo po stránce, nešlo pořádně přetahovat
zkus toto řešení dodat, třeba půjde upravit, aby se chovalo normálněji.

Nehledě na to, že knihovnu na serveru vůbec nahranou nemám
nezáleží na tom, zda ji máš u sebe nebo ne. Jde o to, že stránka při načítání na načtení této knihovny čeká.
_es
Profil
Lukerus:
Říkal jsem si, že problém bude v tom, že ho načítám dvakrát (jednou v menu novinek a jednou v hlavičce stránky), tím to ale není.
To je zle, bez ohľadu na to, či si myslíš, či to „tým je“, alebo nie je. Prehliadač zaujíma výsledný kód, nie to, akým spôsobom bol vyrobený.
Na čo tam máš dva frameworky, je to obvyklý problém, že sa navzájom „bijú“.
Skontroluj si, či sú funkčné externé súbory, napríklad namiesto "./fonty/fonty.css" sa načítava nejaká chybová stránka.
Chamurappi
Profil
Reaguji na Lukeruse:
Přijde mi to jako nejjednodušší řešení.
Koukám na ten uvedený kód a říkám si, jestli nejjednodušší není spíš alert. Zobrazuješ jen okénko s krátkým textem a tlačítkem Ok

nešlo pořádně přetahovat
To je průšvih, no. Když mi nějaká stránka vynadá, že jsem nevyplnil správně e-mail, tak první, co udělám, je, že zkusím tu hlášku přetáhnout pryč :-)
Lukerus
Profil
panther:
Dialog jsem dělal sám, na přetahování jsem si našel js skript. Problém byl ale v tom, že jsem div, který sloužil jako hláška měl display:none a pak jsem ho ukázal pomocí jQuery. Když se ale ukázal, zobrazil se pod stránkou nebo nad stránkou, podle toho kam jsem ho umístil. když jsem mu nastavil přesnou pozici, při kliknutí na něj skočil někam do pryč a už jsem ho nenašel.

_es:
Máš pravdu, fonty.css se načítaly zbytečně, protože jsem to stejně nakonec smazal. Nyní už je to v pořádku.

Chamurappi:
Alert jsem tam měl, ale přišlo mi to, že to nesedí ke vzhledu stránky. Vzhled dialogu ještě pozměním a nehodlám ho používat jen pro validaci formulářů.

Vzhledem k tomu, že mi je 13 a teprve se všechno (javascript, jquery, php i pc grafiku) učím, tak si myslím, že takové stránky s administračním systémem jsou docela dobrý výkon. Celé stránky budu ještě více "zdynamičťovat" a toto ještě není úplný výsledek!!! To, že se mi tloukly dva frameworky je pravda - figurovalo tam ještě mootools, ale rozhodl jsem se pro jiné řešení právě kvůli popsaným problémům.

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: