Gebruik facebook feed
Maar nu maak ik gebruik van jquery 1.11.2 en werk mijn button om te sharen niet meer.
Heeft iemand een oplossing hiervoor?
Dit is hoe het wel werkt met 1.6.1 maar niet met 1.11.2
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
35
36
37
38
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
35
36
37
38
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'MyId',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
};
(function() {
var e = document.createElement('script');
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
}());
</script>
<div onclick="share_me()"><img id = "share_button1" src = "deel_button.png"></div>
<script type="text/javascript">
$(document).ready(function(){
$('#share_button1').live('click', function(e){
e.preventDefault();
FB.ui({
method: 'feed',
name: 'titel',
link: 'url',
picture: 'image.jpg',
caption: 'website',
description: 'de beschrijving'
});
});
});
</script>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'MyId',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true // parse XFBML
});
};
(function() {
var e = document.createElement('script');
e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js';
e.async = true;
document.getElementById('fb-root').appendChild(e);
}());
</script>
<div onclick="share_me()"><img id = "share_button1" src = "deel_button.png"></div>
<script type="text/javascript">
$(document).ready(function(){
$('#share_button1').live('click', function(e){
e.preventDefault();
FB.ui({
method: 'feed',
name: 'titel',
link: 'url',
picture: 'image.jpg',
caption: 'website',
description: 'de beschrijving'
});
});
});
</script>
- Ariën -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 27/06/2016 23:05:11 door - Ariën -
http://api.jquery.com/live/:
As of jQuery 1.7, the .live() method is deprecated. Use .on() to attach event handlers. Users of older versions of jQuery should use .delegate() in preference to .live().
This method provides a means to attach delegated event handlers to the document element of a page, which simplifies the use of event handlers when content is dynamically added to a page. See the discussion of direct versus delegated events in the .on() method for more information.
Rewriting the .live() method in terms of its successors is straightforward; these are templates for equivalent calls for all three event attachment methods:
This method provides a means to attach delegated event handlers to the document element of a page, which simplifies the use of event handlers when content is dynamically added to a page. See the discussion of direct versus delegated events in the .on() method for more information.
Rewriting the .live() method in terms of its successors is straightforward; these are templates for equivalent calls for all three event attachment methods:
Je moet nu de on() functie gebruiken op de juiste manier.
Bedankt voor de tip het werkt weer als vanouds :)
Mooi! :-)
Bij sommige images word een verkeerd images gedeeld (terwijl er in de code wel het juiste image bij staat) iemand enig idee hoe dat kan?
Het vreemde is dat de titel en de beschrijving wel kloppen.
Mijn vermoeden is dat hier ergens iets niet klopt:
wat vervangen is in:
Waarschijnlijk zou ik hier naar moeten verwijzen "#share_button?"?
Het nummer van "#share_button?" wordt steeds verhoogd naargelang er images zijn om te delen.
Ik krijg ook een aantal keer de melding: Uncaught ReferenceError: share_me is not defined
Dit komt soms 5x voor soms 2x het veranderd steeds.
Als iemand een idee heeft wat er nu mis gaat hoor ik het graag, ook als ik meer code moet plaatsen natuurlijk.
P.S. Zo werkt het ook zonder de on(), maar probleem met het image blijft:
Sietsko
Gewijzigd op 29/06/2016 11:06:20 door Sietsko Bos
Ik neem aan dat $share_counter een vaste waarde heeft, dus #share_button<$share_counter> is waarschijnlijk niet uniek? Ook definieer je met .on(...) vaak in één keer onclick-events voor meerdere elementen. Het zou handiger zijn als je een id definieert en aanroept voor een overkoepelende container (table wellicht?) en dan de klikbare elementen voorziet van een klasse ofzo.
Voor het overzicht zou het ook niet misstaan om de laatste versie van relevante code te plaatsen, zodat we hierop kunnen voortborduren - het is nu namelijk nogal koffiedik kijken wat er misgaat... De flarden code die je plaatst bevatten simpelweg te weinig puzzelstukjes.
Het vreemde is dat alles in principe werkt, alleen dat het image die gedeeld wordt niet klopt.
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
35
36
37
38
39
40
41
42
43
44
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
35
36
37
38
39
40
41
42
43
44
<?php
// teller om de id's voor de share buttons te maken
$share_counter = 1;
foreach ($resultaat as $both)
{
echo '<div class="content_container_beeldendevorming"><div class="content_image_beeldendevorming">';
echo "<div class='wrapper'>";
echo '<a href="link naar andere pagina"><div align="left"><strong>Titel</strong>'.
'</div><br><img src="'.$delthumb.$both['thumbnail2'].'" alt="" width="267" height="200" /></a>';
echo "<div class='description'>";
echo "<div class='description_content'>";
echo '<table width="263" border="0" cellspacing="0" cellpadding="0">';
echo "<tr>";
echo '<td width="70" scope="row">';
?>
<div onclick="share_me()"><img id = "share_button<?php echo $share_counter; ?>" src = "deel_button.png"></div>
<script type="text/javascript">
$(document).ready(function(){
$('#share_button<?php echo $share_counter; ?>').click(function(e){
e.preventDefault();
FB.ui({
method: 'feed',
name: 'Titel',
picture: 'link to image',
link: 'link to url',
caption: 'www.juf-milou.nl',
description: 'description'
});
});
});
</script>
<?php
echo '</td>';
echo '<td width="81"> </td>';
echo '<td width="129" align="right"> </td>';
echo '</tr></table></div></div></div>';
// verhoog de share counter met 1
$share_counter++;
}
?>
// teller om de id's voor de share buttons te maken
$share_counter = 1;
foreach ($resultaat as $both)
{
echo '<div class="content_container_beeldendevorming"><div class="content_image_beeldendevorming">';
echo "<div class='wrapper'>";
echo '<a href="link naar andere pagina"><div align="left"><strong>Titel</strong>'.
'</div><br><img src="'.$delthumb.$both['thumbnail2'].'" alt="" width="267" height="200" /></a>';
echo "<div class='description'>";
echo "<div class='description_content'>";
echo '<table width="263" border="0" cellspacing="0" cellpadding="0">';
echo "<tr>";
echo '<td width="70" scope="row">';
?>
<div onclick="share_me()"><img id = "share_button<?php echo $share_counter; ?>" src = "deel_button.png"></div>
<script type="text/javascript">
$(document).ready(function(){
$('#share_button<?php echo $share_counter; ?>').click(function(e){
e.preventDefault();
FB.ui({
method: 'feed',
name: 'Titel',
picture: 'link to image',
link: 'link to url',
caption: 'www.juf-milou.nl',
description: 'description'
});
});
});
</script>
<?php
echo '</td>';
echo '<td width="81"> </td>';
echo '<td width="129" align="right"> </td>';
echo '</tr></table></div></div></div>';
// verhoog de share counter met 1
$share_counter++;
}
?>
Gewijzigd op 29/06/2016 14:24:29 door Sietsko Bos
Sietsko Bos op 29/06/2016 14:17:24:
Het vreemde is dat alles in principe werkt, alleen dat het image die gedeeld wordt niet klopt.
Waar blijkt dat uit? Stuur je ook de juiste informatie door aan FaceBook?
Observatie: er staat nu JavaScript code in een PHP-loop, deze lap JavaScript-code komt dus meerdere keren voor in het uiteindelijke HTML-document. In plaats van het éénmalig definiëren van een generieke functie voor het afhandelen van een click-event definieer je nu voor elke afbeelding afzonderlijk een click-event(-functie)? Waarom? :/
En zoals eerder gezegd doet dat onclick="share_me()" of whatever dus waarschijnlijk niets. In het ergste geval breekt dit de rest van je JavaScript omdat je refereert aan een niet-bestaande functie. Maak alles eerst eens kloppend door dat weg te halen en kijk dan eens of/hoe het een en ander werkt.