Append functie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jop B

Jop B

26/10/2015 21:36:08
Quote Anchor link
Beste,


Met jquery maak ik gebruik van de append functie, deze word aangeroepen d.m.v. een click functie.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$(element).click(function(){
$(body).append('<b class="text"></b>');
});


Telkens als ik klik dan word deze functie uitgevoerd, echter wil ik dat jquery hem niet meer toevoegd als hij al bestaat.
Nu had ik het volgende geprobeerd
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
$(element).click(function(){
if (!$('body').find('.text')){
alert ('is al aanwezig');
}else{
$('body').append('<b class="text"></b>');
}
});


Helaas werkt dit niet, weet iemand een andere manier hiervoor?


Gr. Jop
 
PHP hulp

PHP hulp

26/12/2024 14:49:29
 
Thomas van den Heuvel

Thomas van den Heuvel

26/10/2015 22:00:28
Quote Anchor link
Kun je niet beter eerst een plekje reserveren in een document dmv een div-container met een uniek id, en dan controleren of deze leeg is of niet? Dat lijkt mij (ook) wat efficienter dan je hele document doorzoeken. Maak dus een soort van placeholder oid.
 
Jop B

Jop B

26/10/2015 22:33:18
Quote Anchor link
Beste Thomas,


Dank voor je reactie. Heb maar even een fiddle aangemaakt, want heb nog een situatie wat eiegenlijk op het zlefde neerkomt.

Fiddle

In deze situatie heb ik te maken met een button, deze button bevat text en is dus niet leeg (empty) toch wil ik controleren of er een bepaald element zicht hierin bevind.
 
Thomas van den Heuvel

Thomas van den Heuvel

27/10/2015 12:29:02
Quote Anchor link
Het is sowieso raar dat deze constructie:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
if ($(this).find('.text')) {
    // doe iets
    // ...
} else {
    // doe niets
}

altijd werkt.

Blijkbaar is:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$(this).find('.text')

Altijd ongelijk aan false. .find() retourneert altijd een "niet leeg object".

Waar je naar op zoek was is dus waarschijnlijk zoiets:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
if ($(this).find('.text').length == 0) {
    // doe iets
    // ...
} else {
    // doe niets
}

Dit zorgt ervoor dat het if-statement alleen true oplevert op het moment dat je nog geen div met klasse "tekst" hebt toegevoegd.
Gewijzigd op 27/10/2015 12:30:02 door Thomas van den Heuvel
 
Wouter J

Wouter J

27/10/2015 12:45:20
Quote Anchor link
Wil je eigenlijk niet gewoon maar 1 keer de click functie uitvoeren?

Code (js)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
$(element).once('click', function () {

    $(body).append('<b class="text"></b>');

});
 
Jop B

Jop B

27/10/2015 13:01:05
Quote Anchor link
Dank voor alle reactie's

Zelfde had ik dit nog geprobeerd:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
$(document).ready(function () {
    var check = $(".myDiv").length;
    console.log(check);
    if ($(".myDiv").length == 1) {
        alert ('aanwezig');
    }else{
    alert ('niet aanwezig');
    }
});


* Deze code heeft andere elementen nu, aangezien ik dit even los heb getest.
Gewijzigd op 27/10/2015 13:02:21 door Jop B
 
Pieter R

Pieter R

28/10/2015 09:03:29
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$('#send').one('click', function(){
    $('body').append('<div class="text">deze text</div>')
});

one ipv once werkt zo te zien
fiddle-> https://jsfiddle.net/Pieter_FR/2grgpz5y/
Gewijzigd op 28/10/2015 09:08:07 door Pieter R
 



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.