2016-06-08 9 views
0

hinzufügen ich eine Funktion in Typoskript machen möchte die nächste div zu finden und eine CSS-Klasse hinzufügen, hier ist mein Versuch:Click-Ereignis neben div findet eine CSS-Klasse Typoskript

<ul> 
    <li><a href="#" onclick="toggle()">Item 1</a></li> 
    <div class="content hide"></div> 
    <li><a href="#" onclick="toggle()">Item 2</a></li> 
    <div class="content hide"></div> 
    <li><a href="#" onclick="toggle()">Item 3</a></li> 
    <div class="content hide"></div> 
    <li><a href="#" onclick="toggle()">Item 4</a></li> 
    <div class="content hide"></div> 
    <li><a href="#" onclick="toggle()">Item 5</a></li> 
    <div class="content hide"></div> 
</ul> 

Nun wird die Funktion in Typoskript

function toggle(){ 
    this.parent().next('.content').class('hide'); 
} 

Danke Jungs

+0

Können Sie was fragen Sie klären zu benutzen? – gcampbell

+0

Erstellen Sie eine Typoskript-Funktion, wenn Sie auf klicken, finden Sie das nächste .content und fügen Sie eine Klasse hinzu .hide @gcampbell – rodboc

+0

'this' ist nicht das, was Sie annehmen! – Rayon

Antwort

0

this ist nicht das, was Sie davon aus! Sie sollten das aktuelle Element als this als Argument übergeben.

Beachten Sie auch, es gibt keine .class Methode, sollten Sie .toggleClass Methode verwenden.

function toggle(elem) { 
 
    $(elem).parent().next('.content').toggleClass('hide'); 
 
}
.hide { 
 
    display: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
 
<ul> 
 
    <li><a href="#" onclick="toggle(this)">Item 1</a> 
 
    </li> 
 
    <div class="content hide">Content Goes here!</div> 
 
    <li><a href="#" onclick="toggle(this)">Item 2</a> 
 
    </li> 
 
    <div class="content hide">Content Goes here!</div> 
 
    <li><a href="#" onclick="toggle(this)">Item 3</a> 
 
    </li> 
 
    <div class="content hide">Content Goes here!</div> 
 
    <li><a href="#" onclick="toggle(this)">Item 4</a> 
 
    </li> 
 
    <div class="content hide">Content Goes here!</div> 
 
    <li><a href="#" onclick="toggle(this)">Item 5</a> 
 
    </li> 
 
    <div class="content hide">Content Goes here!</div> 
 
</ul>

Aber es ist besser als jQuery-event-bindingInline-event-binding

function toggle() { 
 
    $(this).parent().next('.content').toggleClass('hide'); //this will refer to current element! 
 
} 
 
$('li a').on('click', toggle);
.hide { 
 
    display: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> 
 
<ul> 
 
    <li><a href="#">Item 1</a> 
 
    </li> 
 
    <div class="content hide">Content Goes here!</div> 
 
    <li><a href="#" onclick="toggle(this)">Item 2</a> 
 
    </li> 
 
    <div class="content hide">Content Goes here!</div> 
 
    <li><a href="#">Item 3</a> 
 
    </li> 
 
    <div class="content hide">Content Goes here!</div> 
 
    <li><a href="#">Item 4</a> 
 
    </li> 
 
    <div class="content hide">Content Goes here!</div> 
 
    <li><a href="#">Item 5</a> 
 
    </li> 
 
    <div class="content hide">Content Goes here!</div> 
 
</ul>

Verwandte Themen