Als element bepaalde class heeft > doe iets

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Guido  -

Guido -

16/03/2016 23:53:11
Quote Anchor link
Hallo,

Ik wil graag bepaalde content NIET laden/tonen als element een bepaalde class heeft.

Voorbeeld:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
if (has_class('my_class')){
  // doe iets
} else {
  // doe iets anders
}


Zag al wel een jquery functie (.hasClass) maar wil dit graag middels PHP oplossen.
Dus wie kan me op weg helpen?

Guido
 
PHP hulp

PHP hulp

04/12/2024 20:43:24
 
Thomas van den Heuvel

Thomas van den Heuvel

17/03/2016 00:01:01
Quote Anchor link
Euh... Misschien is het makkelijker om even de toepassing van dit alles te schetsen, en dan te bepalen waar dit opgelost moet worden :s.
 
Guido  -

Guido -

17/03/2016 00:10:22
Quote Anchor link
Nou,

Ik heb een WordPress website met een pagina waarop een lijst met events staat. In de sidebar kan ook een lijst met events staan (middels een widget). Onderaan de lijst staat paginering. Ik wil de paginering volledig uitschakelen voor de lijst in de sidebar. Dit kan via css (display:none), maar dan werkt paginering nog wel (via de paginering op de pagina). Daarom wil ik het volledig uitschakelen voor de lijst die in de sidebar staat. Dus wil / probeer ik de paginering uit te zetten voor de class die de widget heeft.

Guido
 
Randy vsf

Randy vsf

17/03/2016 09:22:53
Quote Anchor link
JS:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
var el = document.getElementById('test');

if(el.classList.contains('class3'))
{
    alert('true');
}


Met PHP moet je voorkomen dat het element aangemaakt wordt.
Gewijzigd op 17/03/2016 09:25:40 door Randy vsf
 
Ozzie PHP

Ozzie PHP

17/03/2016 11:07:08
Quote Anchor link
Mijn gevoel zegt dat je op een verkeerde manier bezig bent. Je wilt bepaalde functionaliteit uitschakelen nadat de pagina al is gerenderd. Dat klinkt niet logisch. Ook het feit dat je dit wil doen aan de hand van een class (die doorgaans is bedoeld voor opmaak) doet mij vermoeden dat je niet juist bezig bent.

Het lijkt me dat je de functionaliteit die jij wilt uitschakelen rechtstreeks in de PHP-code dient uit te schakelen, en niet achteraf als de pagina al is gegenereerd op je beeldscherm.
Gewijzigd op 17/03/2016 11:07:29 door Ozzie PHP
 
Guido  -

Guido -

17/03/2016 11:33:40
Quote Anchor link
Hoi Ozzie,

Het probleem waar ik tegen aan loop is dat ik dezelfde event lijst op zowel pagina als in sidebar wil kunnen tonen. Deze lijst heeft dus ook dezelfde (css) class. Ik wil de paginering van de lijst uitschakelen indien de lijst in de sidebar van mijn site geladen wordt. Dus niet afschermen middels css maar uitschakelen. Dat dacht ik te kunnen doen door te bepalen of de bovenliggende class die van de widget/sidebar is. En zo ja, dan middels een if statement de paginering niet laden.

Mogelijk dat WordPress zelf ook iets heeft om dit te kunnen bepalen.

Guido
Gewijzigd op 17/03/2016 11:35:41 door Guido -
 
Ozzie PHP

Ozzie PHP

17/03/2016 17:26:32
Quote Anchor link
Een class gebruik je voor opmaak. Op het moment dat je met Javascript wil kijken of iets een bepaalde class heeft, dan is de pagina blijkbaar dus al geladen. Het enige wat je dan kunt doen is de paginering verbergen en niet uitschakelen. De paginering is er dan dus nog steeds. Als iemand css uitschakelt, zal de paginering weer zichtbaar zijn.
 
Guido  -

Guido -

18/03/2016 23:39:35
Quote Anchor link
Duidelijk. Ga paginering via css verbergen in sidebar en overwegen om dan toch 2 verschillende lijsten te bouwen: 1 voor pagina en 1 voor de sidebar.

Bedankt voor jullie reacties.

Guido
 
Ozzie PHP

Ozzie PHP

19/03/2016 01:15:10
Quote Anchor link
>> Duidelijk. Ga paginering via css verbergen in sidebar en overwegen om dan toch 2 verschillende lijsten te bouwen: 1 voor pagina en 1 voor de sidebar.

Nee, nog niet helemaal ... je moet de paginering niet via css verbergen. Je moet er juist voor zorgen dat deze (in de sidebar) helemaal niet geladen wordt.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.