jQuery Mobile: event op flipswitch?

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Willem vp

Willem vp

27/05/2013 01:23:38
Quote Anchor link
In jQuery Mobile probeer ik de inhoud van een span-element te wijzigen als een flipswitch wordt omgezet:
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
16
17
<div id="page1" data-role="page">
   <div data-role="content">
      <div id="aanuitdingetje" data-role="fieldcontain">
         <select name="flipswitch1" id="flipswitch1" data-theme="" data-role="slider">
             <option value="off">Uit</option>
             <option value="on">Aan</option>
         </select>
         <span id="textdingetje">(leeg)</span>
      </div>
   </div>
</div>
<script type="text/javascript">
   $('#flipswitch1').on('slidestop', function() {
      alert('klik');
      $('#textdingetje').innerHTML='niet leeg meer';
   });
</script>

Wanneer ik op de switch klik, wordt de callback netjes aangeroepen, want ik krijg een alertbox met de tekst "klik". De inhoud van het span-element wordt echter niet gewijzigd.

Als ik $('#textdingetje') vervang door document.getElementById('#textdingetje') krijg ik in de javascript console de melding "Uncaught TypeError: Cannot set property 'innerHTML' of null". Om de een of andere reden wordt het span-element (of misschien zelfs het hele document-object) dus niet gezien vanuit de callback.

Een soortgelijke constructie in 'plain old Javascript' werkt wel; blijkbaar doet jQM dus iets met event callbacks wat ik niet verwacht. ;-)

Wat zie ik hier over het hoofd?
Gewijzigd op 27/05/2013 01:27:47 door Willem vp
 
PHP hulp

PHP hulp

26/11/2024 09:36:09
 
Lord Gaga

Lord Gaga

27/05/2013 08:52:49
Quote Anchor link
Probeer dit eens?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<script type="text/javascript">
   $('#flipswitch1').on('slidestop', function() {
      alert('klik');
      $('#textdingetje').html('niet leeg meer');
   });
</script>
 
Willem vp

Willem vp

27/05/2013 10:50:37
Quote Anchor link
Geen verschil. En aangezien alert(document.getElementById('#textdingetje')) als resultaat 'null' geeft, verwacht ik eigenlijk dat geen enkele method zal werken. $ geeft weliswaar een object terug, maar dat is volgens mij een leeg object, want elke property die ik opvraag is undefined.

Toevoeging op 27/05/2013 17:01:26:

Zoals gebruikelijk ligt de oplossing weer eens voor de hand. ;-)

window.document.getElementById('#textdingetje').html('niet leeg meer');
 



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.