Wordpress is not a function pure javascript

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jop B

Jop B

26/02/2019 16:09:18
Quote Anchor link
Hallo,


In mijn wordpress plugin wil heb ik een functio gemaakt die moet worden geactiveerd als je een optie (radio button) veranderd. Hiervoor heb ik de onchange gebruikt.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<input id="check" type="radio" onchange="checktype();" name="check" value="Optie 1">
<input id="check" type="radio" onchange="checktype();" name="check" value="Optie 2">
enz. enz.


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
function checktype(){
    alert("Optie is verander");
}


Javascript heb ik niet in een aparte file staan maar direct onder de inputs.

Op een of andere manier zegt hij in de console.log "Uncaught TypeError: checktype is not a function"

Weet iemand hier een oplossing voor?
 
PHP hulp

PHP hulp

23/11/2024 11:41:16
 
- Ariën  -
Beheerder

- Ariën -

26/02/2019 16:17:26
Quote Anchor link
Zet het eens boven de inputs?
Of gebruik anders eens iets van onload.

https://stackoverflow.com/questions/9899372/pure-javascript-equivalent-of-jquerys-ready-how-to-call-a-function-when-t
Gewijzigd op 26/02/2019 16:19:14 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

26/02/2019 16:32:30
Quote Anchor link
Quote:
Javascript heb ik niet in een aparte file staan maar direct onder de inputs.

Staat de functie ook in een fatsoenlijk script-blok? Laat de volledige declaratie in het HTML-document eens zien? Dus inclusief <script ...>-tags?
 
Jop B

Jop B

26/02/2019 16:46:31
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<html>
<head>
stuff...
</head>
<body>
<input id="check" type="radio" onchange="checktype();" name="check" value="Optie 1">
<input id="check" type="radio" onchange="checktype();" name="check" value="Optie 2">

<script type="text/javascript">
function checktype(){
    alert("Optie is veranderd");
}
</script>
</body>
</html>
 
- Ariën  -
Beheerder

- Ariën -

26/02/2019 16:55:46
Quote Anchor link
Ik ben meer bekend met jQuery. Maar als je in jouw geval eerst de functies aanroept en dan pas aanmaakt, moet je dan niet eerst in je JS-script kijken of je DOM geladen is?
 
Jop B

Jop B

26/02/2019 17:05:45
Quote Anchor link
Nou ik had eerst dit script in een aparte file staan die ik via de head aanroep, maar ook daar zegt hij dat de functie niet bestaat.
Ik weet dat bij wordpress je de functies aanroept met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
var $j = jQuery.noConflict();
$j(function(){
//hier je functie
})
 
Ozzie PHP

Ozzie PHP

26/02/2019 17:14:13
Quote Anchor link
Jop B op 26/02/2019 16:46:31:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<html>
<head>
stuff...
</head>
<body>
<input id="check" type="radio" onchange="checktype();" name="check" value="Optie 1">
<input id="check" type="radio" onchange="checktype();" name="check" value="Optie 2">

<script type="text/javascript">
function checktype(){
    alert("Optie is veranderd");
}
</script>
</body>
</html>

Even getest. Bij mij werkt deze code gewoon (buiten Wordpress). Ik krijg een alert-box te zien.

Heb je niet per ongeluk een bestaande naam gebruikt? Verander de functienaam eens in iets anders?
 
Thomas van den Heuvel

Thomas van den Heuvel

26/02/2019 18:01:30
Quote Anchor link
Of is dit wel de Wordpress manier om dingen te doen?
 
Jop B

Jop B

26/02/2019 18:11:33
Quote Anchor link
heb de naam aangepast en nu werkt het wel:)
Bedankt voor het meedenken!
 
- Ariën  -
Beheerder

- Ariën -

26/02/2019 18:32:56
Quote Anchor link
Volgens mij staat Wordpress hier totaal los van.
 
Thomas van den Heuvel

Thomas van den Heuvel

26/02/2019 20:00:10
Quote Anchor link
Neemt niet weg dat je hier allerlei dingen omheen zou moeten metselen.

Als we @Ozzie moeten geloven was dit géén naamgevingskwestie, dus dan is er iets anders aan de hand. Caching (van browser, template, iets anders), of een ander proces dat hier invloed op heeft.

Er mag dan iets opgelost zijn, of liever gezegd, het probleem speelt niet direct meer, maar als je niet precies weet wat er aan ten grondslag lag ben je eigenlijk niets wijzer geworden.
Gewijzigd op 26/02/2019 20:01:33 door Thomas van den Heuvel
 
Ozzie PHP

Ozzie PHP

26/02/2019 20:34:43
Quote Anchor link
>> Als we @Ozzie moeten geloven was dit géén naamgevingskwestie

Euh ... ik suggereerde juist om de naam wél te veranderen, en klaarblijkelijk heeft dat geholpen. Ik heb het gewoon 'plain' getest, buiten Wordpress om dus. En bij mij werkte het wel. Het veranderen van de functienaam heeft er bij Jop B toe geleid dat het nu wel werkt, dus wellicht werd die functienaam al door (een plugin in) Wordpress gebruikt en leverde dat een conflict op.
 
Jop B

Jop B

26/02/2019 20:39:42
Quote Anchor link
Cache geheugen heb ik meerdere malen gereset en javascript file een versienummer gegeven bij een wijziging.
Dit leverde beide geen verandering op.
Het kan inderdaad zijn dat de functienaam al in gebruik was waar ik niet over had nagedacht.

Voor nu blijft het werken en heb ik er script al aardig kunnen uitbreiden.
 
Thomas van den Heuvel

Thomas van den Heuvel

26/02/2019 21:16:53
Quote Anchor link
> Het kan inderdaad zijn dat de functienaam al in gebruik was waar ik niet over had nagedacht.
Dan had ik een andere fountmelding verwacht.
 



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.