Avatar billede asp_sjov Nybegynder
23. april 2011 - 07:56 Der er 7 kommentarer og
1 løsning

Problemer med at vise billeder rigtigt med jquery ajax menu og fancybox

Hej Alle

Jeg har et lille problem jeg håber der er nogen der kan hjælpe mig med.

Jeg har en jquery ajax menu, som loader indholdet fra en klassisk asp fil ind i en div, det fungere som det skal.
Jeg har så lavet et billede galleri ved hjælp af fancybox, det viker også fint, hvis jeg kører det direkte fra siden udenom ajax menuen.
Hvis jeg sætter koderne ind i min index fil, fungere det også fint, men så snart jeg prøver at køre det via ajax menuen ( asp filen den loader ind) virker det ikke, så åbner den bare billedet i alm størrelse og ikke i fancybox.

linket til billedet ser således ud:

<a rel="galleri" href="billede.jpg" border="0"><img width="100px" height="100px" src="billede.jpg" border="0"></a>


Når jeg linker til mine sider via menuen, er det via java script: ajaxpage('side.asp','divnavn')

Koden til at fremvise billedet ser således ud:


        $(document).ready(function() {
$("#various2").fancybox();
           

            $("a[rel=galleri]").fancybox({
                'transitionIn'        : 'fade',
                'transitionOut'        : 'fade',
                'titlePosition'     : 'over',
                'titleFormat'        : function(title, currentArray, currentIndex, currentOpts) {
                    return '<span id="fancybox-title-over">Image ' + (currentIndex + 1) + ' / ' + currentArray.length + (title.length ? '   ' + title : '') + '</span>';
                }
            });


Og ajaxmenuen er lidt lang, men her er noget af den:


function ajaxpage(url, containerid){
var page_request = false
if (window.XMLHttpRequest) // if Mozilla, Safari etc
page_request = new XMLHttpRequest()
else if (window.ActiveXObject){ // if IE
try {
page_request = new ActiveXObject("Msxml2.XMLHTTP")
}
catch (e){
try{
page_request = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
page_request.onreadystatechange=function(){
loadpage(page_request, containerid)
}
page_request.open('post', url, true)
page_request.send(null)
}

function loadpage(page_request, containerid){
if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))
    document.getElementById(containerid).innerHTML=page_request.responseText
    $("body").scrollTop(0);
   

function loadobjs(){
if (!document.getElementById)
return
for (i=0; i<arguments.length; i++){
var file=arguments[i]
var fileref=""
if (loadedobjects.indexOf(file)==-1){ //Check to see if this object has not already been added to page before proceeding
if (file.indexOf(".js")!=-1){ //If object is a js file
fileref=document.createElement('script')
fileref.setAttribute("type","text/javascript");
fileref.setAttribute("src", file);
}
else if (file.indexOf(".css")!=-1){ //If object is a css file
fileref=document.createElement("link")
fileref.setAttribute("rel", "stylesheet");
fileref.setAttribute("type", "text/css");
fileref.setAttribute("href", file);

Håber der er nogen der kan hjælpe mig, så jeg kan få vist mine billeder på en pæn måde.

God påske

p.s. ved ikke om det er i den rigtige kategori jeg har lagt den, undskyld hvis det ikke er
Avatar billede asp_sjov Nybegynder
23. april 2011 - 07:58 #1
glemte at skrive at jeg kalder mine filder i min index fil som:

<link rel="stylesheet" type="text/css" href="style.css" />

<script type="text/javascript" src="jquery.js"></script>

<script type="text/javascript" src="js/javascript.js"></script>

    <script type="text/javascript" src="./fancybox/jquery.mousewheel-3.0.4.pack.js"></script>
    <script type="text/javascript" src="./fancybox/jquery.fancybox-1.3.4.pack.js"></script>
    <link rel="stylesheet" type="text/css" href="./fancybox/jquery.fancybox-1.3.4.css" media="screen" />
Avatar billede Slettet bruger
23. april 2011 - 13:34 #2
Et link ville godt, det er lidt svært at skulle forestille sig hvad der ka' gå galt..
Avatar billede Slettet bruger
23. april 2011 - 13:34 #3
Et gæt ville være konfliktende globale variabelnavne...
Avatar billede asp_sjov Nybegynder
24. april 2011 - 10:26 #4
jeg har desværre ikke noget lin, da den kører lokalt på min maskine, til jeg får lavet den færdig og får købt mit et domain, men fandt ud af, at det nok er denne " $(document).ready(function() {
" der skal kigges lidt på, for det er noget med at (document).ready, er til når siden er loaded færdigt, men den loader ikke siden normalt ind, når det er med ajax.

kæmper stadig med den
Avatar billede Slettet bruger
24. april 2011 - 11:37 #5
Ja, (document).ready trigges når al HTML og javascript er hentet.
- så du skal ikke begynde at ajax'e før da.
Avatar billede asp_sjov Nybegynder
24. april 2011 - 18:51 #6
Jeg fandt ud af at jeg skulle lave min fancybox som en function og derefter kalde den i ajax under hvert menu kald.

så nu virker det :-D

Tom vil du have pointene for at guide mig lidt eller?
Avatar billede Slettet bruger
24. april 2011 - 20:16 #7
Arr, det var vidst mest selvhjælp, så snup dem bare selv, men tak for tilbudet : )
Avatar billede asp_sjov Nybegynder
24. april 2011 - 22:06 #8
okay, men tak for hjælpen :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester