Hinnavaatlus
:: Foorum
:: Uudised
:: Ärifoorumid
:: HV F1 ennustusvõistlus
:: Pangalink
:: Telekavad
:: HV toote otsing
|
|
autor |
|
kasparv
HV vaatleja
liitunud: 24.03.2011
|
13.03.2012 23:09:07
Wordpress custom post type |
|
|
Probleem järgmine:
Mul on portfolio süsteem custom post type'na. Minnes menüüst portfoolio lehele, kuvatakse menüüs active stiiliklassi.
Valides aga portfoliost mingi töö, kaob active klass menüülingilt.
Kas saab kuidagi määrata, et kui ükski menüülink pole aktiivne siis on vaikimisi nt portfolio aktiivse klassiga vms.
On kellelgi ideid?
|
|
tagasi üles |
|
 |
keevitaja
AM 10 aastat

liitunud: 05.11.2001
|
|
Kommentaarid: 51 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
3 :: |
40 |
|
tagasi üles |
|
 |
kasparv
HV vaatleja
liitunud: 24.03.2011
|
14.03.2012 14:24:13
|
|
|
Proovisin nii
<script type="text/javascript">
if($j('body').hasClass('single-portfolio')) {
$j('#menu-item-5').addClass('current_page_item');
}
</script> |
aga miskit ei muutu, lähtekoodis ei näita ka, et oleks current klassi lisanud..
Kas ma jätsin midagi tegemata?
|
|
tagasi üles |
|
 |
keevitaja
AM 10 aastat

liitunud: 05.11.2001
|
14.03.2012 15:25:13
|
|
|
kas sul on samuti määratud, et jQuery alias on $j ???
kas bodyl ikka single-portfolio on määratud?
_________________ Hinnavaatlus ei ole koht arvamuse avaldamiseks! |
|
Kommentaarid: 51 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
3 :: |
40 |
|
tagasi üles |
|
 |
kasparv
HV vaatleja
liitunud: 24.03.2011
|
14.03.2012 15:34:17
|
|
|
keevitaja kirjutas: |
kas sul on samuti määratud, et jQuery alias on $j ???
kas bodyl ikka single-portfolio on määratud? |
Hmm, paistab, et ei ole jQuery aliaseks $j
Proovisin nüüd nii, aga ikka ei miskit:
<script type="text/javascript">
var $j = jQuery;
if($j('body').hasClass('single-portfolio')) {
$j('#menu-item-5').addClass('current_page_item');
}
</script> |
Body: <body class="single single-portfolio postid-9">
|
|
tagasi üles |
|
 |
keevitaja
AM 10 aastat

liitunud: 05.11.2001
|
14.03.2012 15:56:58
|
|
|
$j = jQuery.noConflict(); |
ma ei oska sulle rohkem nõu anda. vaata, kas jquery ikka töötab ja on üldse laetud. samuti, kas body class on sul ikka olemas jne...
see minu lahendus töötab igatahes
_________________ Hinnavaatlus ei ole koht arvamuse avaldamiseks! |
|
Kommentaarid: 51 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
3 :: |
40 |
|
tagasi üles |
|
 |
kasparv
HV vaatleja
liitunud: 24.03.2011
|
14.03.2012 16:49:55
|
|
|
keevitaja kirjutas: |
$j = jQuery.noConflict(); |
ma ei oska sulle rohkem nõu anda. vaata, kas jquery ikka töötab ja on üldse laetud. samuti, kas body class on sul ikka olemas jne...
see minu lahendus töötab igatahes |
jQuery osa:
<script type="text/javascript">
var $j = jQuery.noConflict();
if($j('body').hasClass('single-portfolio')) {
$j('menu-item-5').addClass('current_page_item');
}
</script> |
Menüü source:
<div id="navigation" class="clearfix">
<div class="menu-test-container">
<ul id="menu-test" class="sf-menu">
<li id="menu-item-4" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-home menu-item-4"><a href="esileht">Esileht</a></li>
<li id="menu-item-5" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-5"><a href="portfolio">Tööd</a></li>
</ul>
</div>
</div>
|
Aga endiselt ei tööta, tänud igatahes
|
|
tagasi üles |
|
 |
Fukiku
Kreisi kasutaja

liitunud: 06.11.2003
|
14.03.2012 17:13:49
|
|
|
Siis ikkagi küsimus, et kas jQuery töötab? Brauseri konsoolis pole mingeid veateateid lademes?
_________________ Foxic is just a simple fox
Enne kui sa küsid oma küsimuse - küsi seda vannipardilt! Rangelt soovitatav enne programmeerimise alafoorumisse uue teema tegemist. |
|
Kommentaarid: 2 loe/lisa |
Kasutajad arvavad: |
   |
:: |
0 :: |
0 :: |
2 |
|
tagasi üles |
|
 |
kasparv
HV vaatleja
liitunud: 24.03.2011
|
14.03.2012 17:27:22
|
|
|
Fukiku kirjutas: |
Siis ikkagi küsimus, et kas jQuery töötab? Brauseri konsoolis pole mingeid veateateid lademes? |
Konsoolist vaadates näitab, et jQuery laetakse
[16:19:09.767] GET https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js?ver=1.6.1 [HTTP/1.1 304 Not Modified 249ms]
veateadete kohapealt on ainult mõned css kohta käivad märkused, mis ei saa antud olukorda kuidagi mõjutada
|
|
tagasi üles |
|
 |
keevitaja
AM 10 aastat

liitunud: 05.11.2001
|
14.03.2012 20:16:09
|
|
|
debugimise küsimus. näide, kus selline lahendus töötab
http://parimkatus.ee/tehtud/saku/
_________________ Hinnavaatlus ei ole koht arvamuse avaldamiseks! |
|
Kommentaarid: 51 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
3 :: |
40 |
|
tagasi üles |
|
 |
kasparv
HV vaatleja
liitunud: 24.03.2011
|
14.03.2012 20:41:46
|
|
|
Äkki saaksid anda oma menüükoodi?
Või tead ehk mõnda template, kus analoogne asi toimub, et saaksin uurida?
|
|
tagasi üles |
|
 |
keevitaja
AM 10 aastat

liitunud: 05.11.2001
|
14.03.2012 20:47:19
|
|
|
mis kood?
_________________ Hinnavaatlus ei ole koht arvamuse avaldamiseks! |
|
Kommentaarid: 51 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
3 :: |
40 |
|
tagasi üles |
|
 |
kasparv
HV vaatleja
liitunud: 24.03.2011
|
14.03.2012 20:58:18
|
|
|
keevitaja kirjutas: |
mis kood? |
nvm, mõtlesin midagi sellist:
<?php
wp_nav_menu( array(
'theme_location' => 'menu',
'sort_column' => 'menu_order',
'menu_class' => 'sf-menu',
'fallback_cb' => 'default_menu'
)); ?>
|
Uhh, krt pea ei võta enam üldse, kõik näib justkui klappivat, aga ei lisa see ühtegi klassi menüüelemendile juurde :S
|
|
tagasi üles |
|
 |
keevitaja
AM 10 aastat

liitunud: 05.11.2001
|
14.03.2012 20:59:50
|
|
|
alusta sellest, et kasutades jquery hide() proovi see menu-item-5 ära peita. ennem if ja siis pärast if
_________________ Hinnavaatlus ei ole koht arvamuse avaldamiseks! |
|
Kommentaarid: 51 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
3 :: |
40 |
|
tagasi üles |
|
 |
kasparv
HV vaatleja
liitunud: 24.03.2011
|
14.03.2012 21:12:31
|
|
|
keevitaja kirjutas: |
alusta sellest, et kasutades jquery hide() proovi see menu-item-5 ära peita. ennem if ja siis pärast if |
Menüüst sain menu-item-5 nii ära kaotatud
jQuery('document').ready(function(){
jQuery("#menu-test li:eq(1)").hide();
}); |
|
|
tagasi üles |
|
 |
keevitaja
AM 10 aastat

liitunud: 05.11.2001
|
14.03.2012 22:41:07
|
|
|
su ülesanne pole mitte ära midagi kaotada, vaid testida, kas sinu kood, see kus kasutad $j, töötab. ehk siis $j('#menu-item-5').hide(); pane ennm if lauset ja kui töötab, siis ka peale if lauset. selles samas koodi-plokis, kus üritad klassi lisada.
_________________ Hinnavaatlus ei ole koht arvamuse avaldamiseks! |
|
Kommentaarid: 51 loe/lisa |
Kasutajad arvavad: |
   |
:: |
1 :: |
3 :: |
40 |
|
tagasi üles |
|
 |
kasparv
HV vaatleja
liitunud: 24.03.2011
|
14.03.2012 22:45:18
|
|
|
Võib teema lukku ära panna. Aitäh, kahjuks jQueryga ei õnnestunud mul seda toimima saada!
Lahenduse antud probleemile sain järgmiselt:
function remove_parent($var)
{
if ($var == 'current_page_parent' || $var == 'current-menu-item' || $var == 'current-page-ancestor') { return false; }
return true;
}
function tg_add_class_to_menu($classes)
{
if (is_singular('portfolio'))
{
$classes = array_filter($classes, "remove_parent");
if (in_array('menu-item-5', $classes)) $classes[] = 'current-menu-item';
}
return $classes;
}
if (!is_admin()) { add_filter('nav_menu_css_class', 'tg_add_class_to_menu'); } |
|
|
tagasi üles |
|
 |
|