Autor | Zpráva | ||
---|---|---|---|
hypot Profil |
#1 · Zasláno: 6. 11. 2018, 11:35:45
Zkoušel jsem, jak se dělá pomocí Javascriptu přesun elementů tažením, a zatím jsem vytvořil jen tento základní jednoduchý příklad:
codepen.io/pigner/pen/eQNdxo Zatím však nemůžu dál pokračovat v jeho úpravě, protože jaksi podivně funguje ve Firefoxu. Když se v daném příkladu některá z položek pojmenovaných jako item1, item2 atd. přetáhne do šedého pole nahoře, ve většině prohlížečů tam po přesunu zůstane (element LI změní rodičovský element) a tím veškeré akce skončí. Firefox však okamžitě po dokončení přesunu přejde na internetovou stránku, jejíž adresa odpovídá id přesouvaného elementu (podle schématu "www.<id mého elementu>.com" - ve dvou případech taková stránka náhodou skutečně existuje, ve většině případů se zobrazí chyba, že zadanou stránku není možno nalézt); jinými slovy Firefox se chová, jako bych přetahovaný element přetáhl nikoli do mnou vytvořeného elementu na stránce, nýbrž do adresního řádku prohlížeče. V žádném jiném prohlížeči jsem toto chování nezaznamenal a zvlášť mně mate, že zpočátku to správně fungovalo i ve Firefoxu, až posléze se objevilo popsané chování. Teď nevím, zda je ve Firefoxu nějaká chyba (zkoušel jsem bezúspěšně i s deaktivovanými rozšířeními) nebo mám ve svém kódu já nějakou chybu, na kterou nemůžu přijít, nebo jsem snad nevědomky nějakou klávesovou zkratkou aktivoval nějakou vlastnost Firefoxu nebo na čem vlastně jsem. Vám ve Firefoxu daný příklad funguje správně (u mě verze 62 a 63 pod Linuxem)? Co se s tím dá dělat? Děkuji. |
||
_es Profil |
#2 · Zasláno: 6. 11. 2018, 17:34:22
|
||
pk11 Profil |
#3 · Zasláno: 6. 11. 2018, 18:16:01
_es:
To možná v pořádku není, nicméně problém to neřeší, nebo ano? |
||
pk11 Profil |
#4 · Zasláno: 6. 11. 2018, 22:26:30
hypot:
Jenom info, můj FF se chová stejně - s jediným rozdílem, doplní si doménovou koncovku .cz (ne .com). Žádnou chybu v kódu jsem nenašel (ale to neznamená, že tam nakonec není), vypadá to pravděpodobně na bug Firefoxu ... zkuste to řešit přes jQuery ... Pozn. mám Firefox Quantum 62.0, 64 bit pod Win 10. |
||
Keeehi Profil |
hypot:
Nejsem JS guru ale řekl bych že by problém mohl být, že ti ve funkci dropFC chybí preventDefault() na události. Minimálně v dokumentaci DataTransfer.getData() - Web APIs | MDN v příkladu ho mají i v obsluze události drop a ty ne. |
||
pk11 Profil |
#6 · Zasláno: 7. 11. 2018, 02:16:26
Keeehi:
Sice nejsi JS guru, ale zdá se, že to funguje! (Doplnil jsem udalost.preventDefault(); do function dropFC a FF "s tím přestal", lol) Za sebe - díky :) |
||
hypot Profil |
#7 · Zasláno: 7. 11. 2018, 16:30:14
_es:
> Zdá sa ti kód <ul id="volba"> </ul> Sice to nebylo jádro dotazu, nicméně se tedy ptám, jaké je lepší řešení. Když ponechám seznam UL (#volba) prázdný (odkazovaný příklad jsem takto upravil), bude jeho spodní okraj zarovnaný na účaří textu před ním a poté, co do něj vložím (přetáhnu) položku LI, předchozí text se posune (poskočí) tak, aby účaří textu ve vložené položce LI bylo na stejné úrovni jako účaří předchozího textu. Různými volbami vlastnosti vertical-align uplatněné na UL.#volba lze sice dosáhnout, že tento prázdný seznam je umístěn vůči předchozímu textu lépe, a vložení položky LI s textem nezpůsobí poskočení předchozího textu, zato ale způsobuje vizuální "schodek" mezi oběma texty, byť ten není velký. Tak mi přišlo jako nejlepší mít už od začátku v seznamu UL nějaký text, aby se po přesunu položky s jiným textem nic ve vzájemné poloze nezměnilo a oba texty přitom byly položeny na stejné úrovni - a nezalomitelná mezera je logická volba v tom smyslu, že je přítomna a přitom není vidět. |
||
_es Profil |
#8 · Zasláno: 7. 11. 2018, 18:50:41
hypot [#7]:
Pokiaľ je v UL niečo iné ako LI možno sa to môže v rôznych prehliadačoch chovať rôzne. Ak aj odhliadneme od toho, že to je nevalidné, nie je jasné, čo by to malo spraviť - mal by si prehliadač „domyslieť“ element LI s tým textom alebo aký by mal byť výsledok? |
||
Halamus Profil * |
#9 · Zasláno: 8. 11. 2018, 02:51:10
Buď bych použil jiný element, než
<ul> , nebo bych do <ul> vložil <li> třebas s display: none;
Na kód jsem se nedíval, jen jsem to tak střelil od pasu. |
||
hypot Profil |
#10 · Zasláno: 8. 11. 2018, 14:14:27
A
<ul><li> </li></ul> je validní? Tato úprava by mi postačovala, jelikož se chová stejně jako mé původní řešení.
|
||
Keeehi Profil |
#11 · Zasláno: 8. 11. 2018, 22:52:51
hypot:
„A <ul><li> </li></ul> je validní?“
Ano |
||
Časová prodleva: 6 let
|
0