| Autor | Zpráva | ||
|---|---|---|---|
| Tomáš1 Profil * |
#1 · Zasláno: 11. 7. 2012, 16:30:26
Ahoj,
chcel by som sa spýtať na jednu vec. Používam jQuery na načítanie obsahu divu, po kliknutí. kód vypadá nejak takto, klasika cez ajax: <script>
function fadeOutDynamicDiv(callback){
$('#mojdiv').fadeOut(500, callback)
}
$(function() {
$("#nav1).click(function() {
var sent_id = $(this).attr('href');
var dataString = 'sent_id='+ sent_id;
$.ajax({
url: 'pages/pagetoload.php',
data: dataString,
type: 'POST',
success: function(data){
fadeOutDynamicDiv(function(){
$('#mojdiv').html(data).fadeIn(500);
});
}
});
return false;
});
});
</script>v HTML mam div, s defaultnym obsahom: <div id="mojdiv"> <h2>nejaky nazov</h2> <p>text</p> <div id="hidden"> <div id="inline1"> <p> Lorem ipsum dolor <p> </div> </div> <a id="various1" class="more" href="#inline1">viac info</a> </div> do ktorého sa načíta výstup zo súbora pagetoload.php, podľa predanej hodnoty sent_id. Všeko funguje výborne. Ale pozor. Odkaz <a id="various1" class="more" href="#inline1">viac info</a> používam na vyvolanie Fancyboxu http://fancybox.net/, v ktorom je inline kontent (div <div id="inline1">). Čiže v header je ešte nejaké to načítanie jQuery, JS pre Fancybox, nejaký ten štýl a + nastavenie Fancyboxu: <script>
jQuery(document).ready(function() {
$("#various1").fancybox({
'titlePosition' : 'inside',
'transitionIn' : 'fade',
'transitionOut' : 'fade'
});
});
</script>Ak sa prvý krát dostanem na stránky, tlačitkom viac info mi pekne vyskočí Fancybox. Ak ale nejakou akciou zmením obsah toho divu mojdiv, cez jQuery - Ajaxom, tak mi prestane Fancybox fungovat. Napriek tomu, že sa presne nahradí kódom z predvoleného divu mojdiv (ako pri prvej návšteve) Ako keby sa nieco prestalo načítavať/brať, konfig pre Fancy box alebo co. Vedel by smi prosím niekto poradiť? Ďakujem |
||
| Tomáš1 Profil * |
#2 · Zasláno: 11. 7. 2012, 18:23:28 · Upravil/a: Tomáš1
Tak si odpoviem sám :)
jQuery(document).ready(function() {
$("#various1").fancybox({
'titlePosition' : 'inside',
'transitionIn' : 'fade',
'transitionOut' : 'fade'
});
});som si uložil do externého súbora, fancy_setup.js v hlavičke HTML som si ho zavolal pre defaultny obsah divu. A potom pre dynamickú zmenu takto: updatnutá časť kódu z predch. príspevku: fadeOutDynamicDiv(dynamicDiv, function(){
$('#'+dynamicDiv).html(data).fadeIn(500);
$.getScript("js/fancy_setup.js");
});A šlape ako má :) pardon, ešte úprava, lebo som pastol moj reálny kúsok kódu, pre príklad vyššie takto: fadeOutDynamicDiv(function(){
$('#mojdiv').html(data).fadeIn(500);
$.getScript("js/fancy_setup.js");
}); |
||
| Kcko Profil |
#3 · Zasláno: 11. 7. 2012, 18:56:30
Tomáš1:
To je možné řešení, ale pořád tam znovu taháš onen js soubor. Lepší je reinit viz http://stackoverflow.com/questions/11099468/how-to-reinitialize-recall-fancybox-after-ajax-updated-dom |
||
| Tomáš1 Profil * |
#4 · Zasláno: 11. 7. 2012, 19:29:00
Kcko:
Veľká vďaka, upravím takto. |
||
|
Časová prodleva: 20 dní
|
|||
| Karol Profil * |
#5 · Zasláno: 31. 7. 2012, 22:53:22
Tomáš1:
Tomáš ako vyzerá ten súbor pagetoload? |
||
|
Časová prodleva: 14 let
|
|||
0