Opgelost.
Het voorbeeld zoals je het aanlevert werkt, maar wellicht zou je voor de goede orde de a-tags moeten voorzien van een href met javascript:void(0) en aan je click event een identifier meegeven voor het event en dan je callback functie beginnen met e.preventDefault(), oftewel, de links moeten niet gevolgd worden. Dit om je HTML syntactisch correct te maken en ervoor te zorgen dan je JavaScript / jQuery hier fatsoenlijk mee omgaat.

Ook snap ik niet helemaal waarom je statische lappen HTML echo'd.

Daarnaast:
- er ontbreekt een ul om je li's
- achter hide() staat geen punt-komma

Zoiets dus:
<div class="selectdate">
    <ul>
        <li class="dat knp"><a class="cto" data-target=".eendatum" href="java script:void(0)">Voeg 1 datum toe</a></li>
        <li class="dat">of</li>
        <li class="dat knp"><a class="cto" data-target=".meerdatum" href="java script:void(0)">Voeg meerdere datums toe</a></li>
    </ul>
</div>

<div class="eendatum target">1</div>
<div class="meerdatum target">2</div>

<script type="text/javascript">
//<![CDATA[
$(document).ready(function() {
    $('.selectdate .cto').click(function(e) {
        e.preventDefault();
        var $target = $($(this).data('target')).slideToggle();
        $('.target').not($target).hide();
    });
});
//]]>
</script>


(maar dan zonder spatie tussen "java script:")

[size=xsmall]Toevoeging op 08/05/2015 13:33:48:[/size]

In het vervolg is het misschien handiger als je reageert dat iets is opgelost, en het oorspronkelijke bericht ongewijzigd laat, zodat anderen hier ook nog iets aan hebben.

Ook kan het handig zijn om de oplossing zelf te delen...

Reageren