2017-05-04 1 views
0

Ich habe Code-Block wie folgt ... zwei zeigen/verbergen zwei Divs. d.h. zwischen den Divs umschalten.jquery Frage zu Element

<li class="col-sm-6 col-md-4 col-lg-3"> 
    <div id="front" class="riddles-border"> 
     <div class="reddle-question"><p>Question 1</p></div> 
     <div class="riddle-ans"><a href="javascipt:void(0)" onclick="openAns(this)">Answer</a></div> 
    </div> 
    <div id="back" class="riddle-sliding-content"> 
     <a href="avascipt:void(0)" onclick="closeAns(this)"><span class="toggle-button r-close"></span> </a> 
     <div class="r-answer"><p>Answer 1</p> 
    </div> 
    </div> 
</li> 

<li class="col-sm-6 col-md-4 col-lg-3"> 
    <div id="front" class="riddles-border"> 
     <div class="reddle-question"><p>Question 2</p></div> 
     <div class="riddle-ans"><a href="javascipt:void(0)" onclick="openAns(this)">Answer</a></div> 
    </div> 
    <div id="back" class="riddle-sliding-content"> 
     <a href="avascipt:void(0)" onclick="closeAns(this)"><span class="toggle-button r-close"></span> </a> 
     <div class="r-answer"><p>Answer 2</p> 
    </div> 
    </div> 
</li> 

Wenn nun der openAns() geklickt wird, möchte ich $('front') div und FadeIn $('back') div Fadeout. Und wenn closeAns() angeklickt wird, möchte ich $('front') div und ausblenden $('back') div. Ich bin nicht in der Lage, das div von dem angeklickt <a> Element in jquery zu bekommen. Kann jemand helfen?

+0

Was meinen Sie damit, dass Sie nicht Holen Sie sich das Div in jQuery? Warum kannst du die divs nicht mit id als "front" und "back" bezeichnen? – illiteratecoder

Antwort

1

Sie müssen set class statt id für die div weil id sollte eindeutig sein und verwenden wie dieses

function openAns(anchor) 
 
{ 
 

 
    $(anchor).parent('div').parent('div').next('div.back:hidden').fadeIn(); 
 
    $(anchor).parent('div').parent('div').fadeOut(); 
 

 
} 
 

 
function closeAns(anchor) 
 
{ 
 
    
 
     $(anchor).parent('div').prev('div.front:hidden').fadeIn(); 
 
    $(anchor).parent('div').fadeOut(); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<li class="col-sm-6 col-md-4 col-lg-3"> 
 
    <div id="" class="riddles-border front"> 
 
     <div class="reddle-question"><p>Question 1</p></div> 
 
     <div class="riddle-ans"><a href="javascipt:void(0)" onclick="openAns(this)">Answer</a></div> 
 
    </div> 
 
    <div id="" class="riddle-sliding-content back" style="display:none"> 
 
     <a href="avascipt:void(0)" onclick="closeAns(this)"><span class="toggle-button r-close"></span>Question </a> 
 
     <div class="r-answer"><p>Answer 1</p> 
 
    </div> 
 
    </div> 
 
</li> 
 

 
<li class="col-sm-6 col-md-4 col-lg-3"> 
 
    <div id="" class="riddles-border front"> 
 
     <div class="reddle-question"><p>Question 2</p></div> 
 
     <div class="riddle-ans"><a href="javascipt:void(0)" onclick="openAns(this)">Answer</a></div> 
 
    </div> 
 
    <div id="" class="riddle-sliding-content back" style="display:none"> 
 
     <a href="avascipt:void(0)" onclick="closeAns(this)"><span class="toggle-button r-close"></span>Question </a> 
 
     <div class="r-answer"><p>Answer 2</p> 
 
    </div> 
 
    </div> 
 
</li>

+0

Ich vergaß zu sagen, dass ich mehrere divs wie diese habe ... so müssen bestimmte div, so senden aktuelle Objekt in Funktion – ghetal

+0

Bitte fügen Sie einen weiteren div mit Ihrer Frage. so kann ich für das @ Ghetal arbeiten – JYoThI

+0

wurde es gelöst .. – ghetal

0

versuchen diese

function openAns(thiss) { 
    thiss.parent().parent().fadeOut(); 
    thiss.parent().parent().fadeIn(); 
} 

function closeAns(thiss) { 
    thiss.parent().parent().fadeIn(); 
    thiss.parent().parent().fadeOut(); 
}