Autor Zpráva
joe
Profil
Zdravím,

narazil jsem na zajímavou věc, když použiju onclick na nějakém elementu, kde je text, tak jedině v Opeře se to chová přesně tak, jak chci (i když možná špatně).

Vysvětlim to na příkladu, třeba mějme tuhle diskuzi a příspěvky v ní. Každý blok s odpovědí má událost onclick, která třeba vyhodí nějaký alert. Tzn, kliknu - dostanu alert, ale :-) když stisknu levý tlačítko a třeba vybírám nějaký text z té odpovědi a pak pustím, tak už nechci aby se ta událost provedla (objevil alert v tomto případě). Ale IE a FireFox se chovají tak, že i při výběru se pak provede událost onclick, v Opeře však ne.

Opera se tedy asi chová špatně, ale zase na druhou stranu uživatelsky lépe. Jde nějak docílit toho, aby teda při výběuru textu, se mi ten alert nezobrazil?

Snad jsem to nějak srozumitelně vysvětlil.

Jediné řešení co mě napadlo je pomocí nějakého timeru a určit si konstantní čas pro kliknutí, ale to se mi nezdá jako nejlepší řešení..

Díky za rady jak to udělat
Miloš
Profil
Nejsem JS-guru, nýbrž patlal a věčný začátečník.
co onselect?
joe
Profil
Miloš
:-) onselect pokud vim, tak je třeba při <select>u, když se vybere nějaká položka z listu. A i kdyby to fungovalo, tak chci přesně opačnou vlastnost, tedy něco jako onnotselectbutonlyclick :-)

EDIT:

Všiml jsem si toho i na Facebooku, čekal jsem, že to tam mají nějak vyřešené a nemají. Pokud si dáte někoho vyhledat, kliknete na něj, objeví se vám odkazy (vpravo). Ale pokud byste chtěli jen vybrat jméno a zkopírovat, tak se vám odkazy stejně zobrazí - i když jste ty odkazy zrovna nepožadovali...
Nox
Profil
joe
Leda mě napadá taková psycho věc - a bylo by dobré ji asi udělat nějak univerzálně -
prostě když nastane nad elementem událost OnMouseDown a potom OnMouseMove
(můžeš použít takový mini stavový automat :) ),
tak se nastaví nějaký přepínač na false a příslušné údálosti nebudou fungovat,
při OnMouseUp se nastaví na true (až po proběhnutí funkce, kterou tam chceš spouštět (třeba ten alert),
který se ale nepustí, protože bude ta proměnná false)

Mno...nevim...

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