Autor Zpráva
nexus
Profil
Dobrý den, chci na svém webu začít využívat Drag'n'drop.
Brouzdal jsem českým internetrem a narazil jsem pouze na článek ohledně drag nad drop na serveru interval.cz.
Přečetl jsem celou serii článků, ale pořád nechápu, jak dám možnost elementu být přetahovan ?
Pochopil jsem, že knihovna dragdrop.js funguje zhruba tak, že sleduje události na webu a pokud bude zachycena událost nad elementem, který bude mít nastavenou událost onDragDrop, tak se spustí celý script.
Problem, ale je, že pořád nemůžu přijít na to, proč mi tohle nejde implemnetovat i jen na obyčejný div.
přesněji:
<script type="text/javascript" src="sniffer.js"></script>
<script type="text/javascript" src="dragdrop.js"></script>
if(IE || NS || OPERA) {
 document.getElementById('ramecek').ondragdrop = function(posunx, posuny)	{
 // Nastav novou pozici objektu
 this.style.left = (this.left + posunx)+"px";
 this.style.top  = (this.top + posuny)+"px";
 }
 startDrag(document.getElementById('ramecek'),1);
}
</script>

<div class="ramecek" id="ramecek">
</div>


a ještě by mě zajímalo, proč při volání fce startDrag() jsou použity 2 parametry, když fce přijímá pouze 1 ??? (tento script je upravený demostračná script ke článku.
Pokud by se našel někdo, kdo by měl čas mi problematiku Drag'n'Drop osvětlit, byl bych velice rád. Pro konzultaci navrhujui použít ICQ, ovšem ani tady na forum mi to neděla probém. Jen davam prednost rychlosti. :)
peta
Profil
nexus
jakpsatweb - css - position
jakpsatweb - javascript - priklady - jednoducha animace

hadam, ze to bude onen problem. Nastesti jsi dal jen cast scriptu a vic zjistit nelze.

jestli chces pouzivat cizi script, mel bys vychazet z puvodniho zdrojoveho kodu, z jejich funkcniho prikladu.
nexus
Profil
peta
jasně to jsem vychazel. pouzivam jejich originalni script, okomentovany o autora, server a datum, ale problem je, ze kdyz zmenim identifikator (id) elementu ktery se ma chovat jako drag and drop tak mi to haže chybu.
Chyba: document.getElementById("ramecek") has no properties
Zdrojový soubor: file:///C:/Documents%20and%20Settings/Sebastian/Plocha/drag'n'drop/ind ex.html
Řádek: 16

řádek 16:
        document.getElementById('ramecek').ondragdrop = function(posunx, posuny)	{

v tohle je problem.
Jinak se mrknu na to co jsi tu napsal.
peta
Profil
nexus
Opakuji znova. Zasahy delat do funkcni verze scriptu.
Dej odkaz na stranku a tam jasne uvidis, ze to neni original.

"jasně to jsem vychazel. pouzivam jejich originalni script, okomentovany o autora, server a datum, ale problem je, ze kdyz zmenim identifikator (id) elementu ktery se ma chovat jako drag and drop tak mi to haže chybu."
Nemuzes ocekavat, kdyz si to drasticky zmenis a nedelas to krok za krokem s ukladanim funkcnich verzi kazdou zvlast, ze to bude fungovat. To je nelogicky postup pracovat s nefunkcnim programem a rozvijet jej.

Ty tvrdis, ze jen zmenis ID, ale ve skutecnosti chces pracovat s ID, ktere vznik az po spusteni scriptu. Takovy postup muze fungovat v IE, ale ne ve FF.

startDrag(document.getElementById('ramecek'),1);
v tuto chvili jeste ID neexistuje, logicky se script nespusti. Jedine, jak to takto muzes zapsat je do BODY onload="seznamfunkci" a nebo pres casovac. A hned pod tim mas radek:
<div class="ramecek" id="ramecek"></div>

Takze problem1 se zdal jako problem schazejici position.
Problem2 se jevi jako problem s praci s necim, co jeste nevzniklo.
Jaky bude problem3 nez das odkaz na stranku s tim kodem, aby jsme meli s cim pracovat?

----
mimochodem, ten script funguje chybne ve ff, kdyz pri pretahovani zajedes na okraj stranky, pustis tlacitko, stale se to pretahuje. A dalsi problem je tez v tomto pripade, ze spocita chybne i souradnice presunu po naslednem polozeni objektu.
Zrejme by se to dalo osetrit pres casovac, ktery by v takovem pripade objekt polozil. Protoze mys mimo okno nelze odecitat a tim padem se to chova, jak se to chova.

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: