Avaleht
uus teema   vasta Tarkvara »  WWW »  Wordpress custom post type märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
kasparv
HV vaatleja

liitunud: 24.03.2011




sõnum 13.03.2012 23:09:07 Wordpress custom post type vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
keevitaja
AM 10 aastat
keevitaja

liitunud: 05.11.2001




sõnum 13.03.2012 23:48:35 vasta tsitaadiga

mul oli täpselt sama mure. lahendasin jquery abil!

https://foorum.hinnavaatlus.ee/viewtopic.php?t=453347&postdays=0&postorder=asc&start=126

_________________
Hinnavaatlus ei ole koht arvamuse avaldamiseks!
Kommentaarid: 51 loe/lisa Kasutajad arvavad:  :: 1 :: 3 :: 40
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
kasparv
HV vaatleja

liitunud: 24.03.2011




sõnum 14.03.2012 14:24:13 vasta tsitaadiga

keevitaja kirjutas:
mul oli täpselt sama mure. lahendasin jquery abil!

https://foorum.hinnavaatlus.ee/viewtopic.php?t=453347&postdays=0&postorder=asc&start=126


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
vaata kasutaja infot saada privaatsõnum
keevitaja
AM 10 aastat
keevitaja

liitunud: 05.11.2001




sõnum 14.03.2012 15:25:13 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
kasparv
HV vaatleja

liitunud: 24.03.2011




sõnum 14.03.2012 15:34:17 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
keevitaja
AM 10 aastat
keevitaja

liitunud: 05.11.2001




sõnum 14.03.2012 15:56:58 vasta tsitaadiga

$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
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
kasparv
HV vaatleja

liitunud: 24.03.2011




sõnum 14.03.2012 16:49:55 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
Fukiku
Kreisi kasutaja
Fukiku

liitunud: 06.11.2003




sõnum 14.03.2012 17:13:49 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
kasparv
HV vaatleja

liitunud: 24.03.2011




sõnum 14.03.2012 17:27:22 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
keevitaja
AM 10 aastat
keevitaja

liitunud: 05.11.2001




sõnum 14.03.2012 20:16:09 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
kasparv
HV vaatleja

liitunud: 24.03.2011




sõnum 14.03.2012 20:41:46 vasta tsitaadiga

keevitaja kirjutas:
debugimise küsimus. näide, kus selline lahendus töötab

http://parimkatus.ee/tehtud/saku/

Äkki saaksid anda oma menüükoodi?
Või tead ehk mõnda template, kus analoogne asi toimub, et saaksin uurida?
tagasi üles
vaata kasutaja infot saada privaatsõnum
keevitaja
AM 10 aastat
keevitaja

liitunud: 05.11.2001




sõnum 14.03.2012 20:47:19 vasta tsitaadiga

mis kood?
_________________
Hinnavaatlus ei ole koht arvamuse avaldamiseks!
Kommentaarid: 51 loe/lisa Kasutajad arvavad:  :: 1 :: 3 :: 40
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
kasparv
HV vaatleja

liitunud: 24.03.2011




sõnum 14.03.2012 20:58:18 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
keevitaja
AM 10 aastat
keevitaja

liitunud: 05.11.2001




sõnum 14.03.2012 20:59:50 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
kasparv
HV vaatleja

liitunud: 24.03.2011




sõnum 14.03.2012 21:12:31 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
keevitaja
AM 10 aastat
keevitaja

liitunud: 05.11.2001




sõnum 14.03.2012 22:41:07 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
kasparv
HV vaatleja

liitunud: 24.03.2011




sõnum 14.03.2012 22:45:18 vasta tsitaadiga

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
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  WWW »  Wordpress custom post type
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.