| Autor | Zpráva | ||
|---|---|---|---|
| Daviart Profil |
#1 · Zasláno: 21. 2. 2013, 14:19:58
Snažím se pomocí Jquery změnit obsah ve span class="popis", asi nejlépe schováním/zobrazením jiného spanu. Výměna zobrazení by se měla projevit po najetí kurzorem na odkaz.
<span class="popis"> <span class="text zobrazit" id="ma1">text1</span> <span class="text schovat" id="ma2">text2</span> <span class="text schovat" id="ma3">text3</span> </span> <ul> <li><a rel="ma1" class="ma">link1</a></li> <li><a rel="ma2" class="ma">link2</a></li> <li><a rel="ma3" class="ma">link3</a></li> </ul> css .zobrazit { display:block }
.schovat { display:none } Jquery $(document).ready(function(){
$('.ma').mouseenter(
function() {
var maID = (this).attr("rel");
$(maID).css("display","block");
$('.text .zobrazit').css("display","none");
}
);
); |
||
| Martin02 Profil |
#2 · Zasláno: 21. 2. 2013, 15:01:33
Daviart:
V tom jQuery máš chyby... $(document).ready(function(){
$('.ma').mouseover( // mouseenter neznám, ale možná to také funguje
function() {
var maID = $(this).attr("rel"); // před (this) musíš mít dolar - $
$("#" + maID).css("display","block"); // hodnota maID je třeba "ma1", takže před to musíš dát #, aby se vědělo, že je to atribut id
$('.text.zobrazit').css("display","none"); // mezi tím .text a .zobrazit bych mezeru nedělal, jelikož je to jeden prvek (mezera značí, že to druhé je v tom prvním)
}
);
);A zadruhé když sis tam tak pěkně vytvořil pomocí CSS třídy pro zobrazování/nezobrazování, tak bych v jQuery udělal jen změnu tříd: $("#" + maID).removeClass("schovat").addClass("zobrazit"); // vymažu mu třídu schovat a přiřadím třídu zobrazit
$('.text.zobrazit').removeClass("zobrazit").addClass("schovat"); // vymažu mu třídu zobrazit a přiřadím třídu schovatA ještě dodat podmínku, aby to fungovalo jen když kliknu na odkaz, který odkazuje na skrytý span: var maID = $(this).attr("rel");
if(!$("#" + maID).hasClass("zobrazit")) { // jestliže span, na který odkazuje to, na co jsem najel nemá třídu zobrazit, prověď další kód...
... |
||
| Chamurappi Profil |
Reaguji na Martina02:
„tak bych v jQuery udělal jen změnu tříd“ Ale v opačném pořadí. Reaguji na Daviarta: „ <a rel="ma3"“
Jak vyjadřuje ma3 vztah mezi stávající stránkou a tou, na kterou odkaz odkazuje? Proč používáš standardní atribut rel na uskladnění nějakého nesmyslu? Proč vůbec používáš odkaz, když nemá href?
Já bych to napsal bez jQuery a takhle: <span id="popis">
<span class="text" id="ma1">text1</span>
<span class="text" id="ma2">text2</span>
<span class="text" id="ma3">text3</span>
</span>
<ul onmouseover="document.getElementById('popis').className = (event.target || event.srcElement).className;">
<li><a class="ma1" class="ma">link1</a></li>
<li><a class="ma2" class="ma">link2</a></li>
<li><a class="ma3" class="ma">link3</a></li>
</ul> |
||
| Daviart Profil |
#4 · Zasláno: 21. 2. 2013, 15:52:07
Moc díky, funguje. S Javou nemám skoro žádné zkušenosti takže syntaxi nikdy nevím jak přesně deklarovat.
Ty „a“ mají odkazy a další atributy, jsou skládány pomoci php, vyňal jsem jen ukázku. |
||
| Chamurappi Profil |
#5 · Zasláno: 21. 2. 2013, 15:56:56
Reaguji na Daviarta:
„S Javou nemám skoro žádné zkušenosti“ JavaScript není Java. „Ty ‚a‘ mají odkazy a další atributy“ Zneužíváš rel k jinému účelu, než by měl být. Pokud si potřebuješ skladovat vlastní data v nějakém atributu, vymysli si nějaký vlastní.
|
||
|
Časová prodleva: 14 let
|
|||
0