PHP en Jquery vraagje
Ik heb een foreach loop waarmee ik porfiel fotos van een twitter feed binnen haal deze zet ik in een grid achter elkaar. Nu wil ik als ik op een van de foto's klik dat dan met jquery deze foto hide en een text box met de twitterfeed er in te voorschijn komt. Nu ben ik zover met het script dat dit bijna werkt alleen als ik nu op de foto klik dan veranderen alle foto's in textboxes in plaats van een. Ik weet ook waarom dit is omdat ze natuurlijk geen induviduele id's hebben en ze staan natuurlijk in een loop dus het klopt dat dit gebeurd alleen weet ik niet hoe ik dit moet oplossen... Weet iemand hier een oplossing voor?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?
<div class="photobox">
[code]<?
foreach($tweets as $tweet)
{
?>
<div class="photo">
<div class="test">
<div class="tweettextbox" style="display:none;">
<? echo $tweet->author;?><br/><? echo $tweet->content; ?>
</div>
<div class="tweetphoto">
<a href="#" title="<? echo $tweet->author;?>"> <img src="<? echo $tweet->avatar; ?>" width="81" height="81" border="0px"></a>
</div>
</div>
</div>
<?
}
?>
</div>
<script>
$(".test").click(function () {
$(".tweettextbox").show("fast");
$(".tweetphoto").hide("fast");
});
$(".sidebar").click(function () {
$(".tweettextbox").hide("fast");
$(".tweetphoto").show("fast");
});
</script>
?>
<div class="photobox">
[code]<?
foreach($tweets as $tweet)
{
?>
<div class="photo">
<div class="test">
<div class="tweettextbox" style="display:none;">
<? echo $tweet->author;?><br/><? echo $tweet->content; ?>
</div>
<div class="tweetphoto">
<a href="#" title="<? echo $tweet->author;?>"> <img src="<? echo $tweet->avatar; ?>" width="81" height="81" border="0px"></a>
</div>
</div>
</div>
<?
}
?>
</div>
<script>
$(".test").click(function () {
$(".tweettextbox").show("fast");
$(".tweetphoto").hide("fast");
});
$(".sidebar").click(function () {
$(".tweettextbox").hide("fast");
$(".tweetphoto").show("fast");
});
</script>
?>
Gewijzigd op 26/09/2012 12:08:09 door Marco Hendriks
Misschien heeft het te maken met die div class="test". Deze komt nu meerdere keren voor. Probeer er eens of het lukt als er maar 1 div staat met class="test"
Je snapt wel waarom alle tweet boxen aangepast worden he.
De selector werkt zoals die van css.
$(".tweetphoto").hide("fast");
zal als resultaat hebben (na de overgang):
.tweetphoto {
display: none;
}
Dat geldt dus inderdaad voor alles met class="tweetphoto".
----
Als je enkel het element wil aanspreken waarop geklikt is, heb je this ter beschikking.
Maar probeer het zelf eens uit; ik heb het niet getest.
De selector werkt zoals die van css.
$(".tweetphoto").hide("fast");
zal als resultaat hebben (na de overgang):
.tweetphoto {
display: none;
}
Dat geldt dus inderdaad voor alles met class="tweetphoto".
----
Als je enkel het element wil aanspreken waarop geklikt is, heb je this ter beschikking.
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
$(".test").click(function () {
// this = <div class="test"> . Maar dan enkel deze waarop geklikt is.
// $(this).find(".tweettextbox") = binnen de geselecteerde <div class="test"> zoekt jQuery naar <div class="tweettextbox">
// dus ...
$(this).find(".tweettextbox").show("fast");
$(this).find(".tweetphoto").hide("fast");
});
// this = <div class="test"> . Maar dan enkel deze waarop geklikt is.
// $(this).find(".tweettextbox") = binnen de geselecteerde <div class="test"> zoekt jQuery naar <div class="tweettextbox">
// dus ...
$(this).find(".tweettextbox").show("fast");
$(this).find(".tweetphoto").hide("fast");
});
Maar probeer het zelf eens uit; ik heb het niet getest.
Gewijzigd op 26/09/2012 13:31:56 door Kris Peeters
ohw tuurlijk ja bedankt :D
Toevoeging op 26/09/2012 13:44:28:
Net uit geprobeerd en works like a charm stom van me dat ik daar zelf niet aan gedacht heb.
Toevoeging op 26/09/2012 13:44:28:
Net uit geprobeerd en works like a charm stom van me dat ik daar zelf niet aan gedacht heb.




