Archief - script werkt niet op items in submappen

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

-BVR-

Legacy Member
Ok, ik had een template met dit in z'n head:

template:
Code:
<head>
...

<script type="text/javascript" src="../js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="../js/resolution-test.js"></script>
<script type="text/javascript" src="../js/cookie.js"></script>
<script type="text/javascript" src="../js/showhide.js"></script>

<!-- TemplateBeginEditable name="head" -->
<!-- TemplateEndEditable -->
</head>

Zoals je ziet staat er een resolution test in, dit zorgt ervoor dat er een ander .css file gebruikt wordt bij andere afmetingen:

resolution-test.js
Code:
function adjustStyle(width) {
    width = parseInt(width);
    if (width < 801) {
        $("#size-stylesheet").attr("href", "css/-801.css");
    } else if ((width >= 801) && (width < 1280)) {
        $("#size-stylesheet").attr("href", "css/801-1279.css");
    } else {
       $("#size-stylesheet").attr("href", "css/1280+.css");
    }
}

$(function() {
    adjustStyle($(this).width());
    $(window).resize(function() {
        adjustStyle($(this).width());
    });
});

Dit werkt zoals het moet werken. Maar ik heb om enkele redenen wat dingen aangepast. Eerst stonden al mijn .html files in de root folder (.. ), maar ik heb er een paar in een submap gezet (../fotos/) en in dreamweaver wreden de links dan geüpdatet etc. maarrr natuurlijk veranderen de links in resolution-test.js niet. resolution-test.js werkt dus wel op de html.files in de root, maar niet in de files in submappen.

Ik heb dan maar een resolution-test2.js gemaakt:
Code:
function adjustStyle(width) {
    width = parseInt(width);
    if (width < 801) {
        $("#size-stylesheet").attr("href", "../css/-801.css");
    } else if ((width >= 801) && (width < 1280)) {
        $("#size-stylesheet").attr("href", "../css/801-1279.css");
    } else {
       $("#size-stylesheet").attr("href", "../css/1280+.css");
    }
}

$(function() {
    adjustStyle($(this).width());
    $(window).resize(function() {
        adjustStyle($(this).width());
    });
});

Dit werkt dan wel bij de submappen, maar niet bij de root; dus ik kan niet gewoon resolution-test.js aanpassen, want dan werken de files in root niet meer (ben je nog mee? :wtf: )

Dus mijn voorlopige oplossing is de template aanpassen met een editable region:

Code:
<head>
...

<script type="text/javascript" src="../js/jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="../js/resolution-test.js"></script>
<!-- TemplateBeginEditable name="head1" -->
<!-- TemplateEndEditable -->
<script type="text/javascript" src="../js/cookie.js"></script>
<script type="text/javascript" src="../js/showhide.js"></script>

<!-- TemplateBeginEditable name="head" -->
<!-- TemplateEndEditable -->
</head>

En daarin (head1) dan een link zetten naar resolution-test2.js bij de files in de submappen alleen.

Dit werkt, maar het is nogal een superomweg vind ik.. Is hier toevallig geen simpelere weg voor? :s

dJeez

Legacy Member
Werken met absolute paden tov de webroot (ipv relatieve paden tov de huidige pagina zoals je nu doet) is de makkelijkste oplossing uiteraard. / is de webroot /css is dus - vanuit eender welke folder - de verwijzing naar de css folder onder die webroot, idem met /js voor de javascript files.

-BVR-

Legacy Member
Zo dan?

Code:
function adjustStyle(width) {
    width = parseInt(width);
    if (width < 801) {
        $("#size-stylesheet").attr("href", "/css/-801.css");
    } else if ((width >= 801) && (width < 1280)) {
        $("#size-stylesheet").attr("href", "/css/801-1279.css");
    } else {
       $("#size-stylesheet").attr("href", "/css/1280+.css");
    }
}

$(function() {
    adjustStyle($(this).width());
    $(window).resize(function() {
        adjustStyle($(this).width());
    });
});

Getest en dan werkt het bij geen enkele, noch de files in de root, noch de files in submap..

Dieterg

Legacy Member
Ben je zeker dat alle JS files naar de root van je site verwezen worden?

HTML:
../js/resolution-test.js

en in de js dan:

HTML:
function adjustStyle(width) {
    width = parseInt(width);
    if (width < 801) {
        $("#size-stylesheet").attr("href", "../css/-801.css");
    } else if ((width >= 801) && (width < 1280)) {
        $("#size-stylesheet").attr("href", "../css/801-1279.css");
    } else {
       $("#size-stylesheet").attr("href", "../css/1280+.css");
    }
}

$(function() {
    adjustStyle($(this).width());
    $(window).resize(function() {
        adjustStyle($(this).width());
    });
});

Ik test dit zelf meestal in de broncode zelf. <Open de site in chrome, bron weergeven> Als je dan op de css link klikt moet je het css file te zien krijgen (hetzelfde voor de JS files). Is dit niet het geval. Dan is de verwijzing naar dit css file niet correct (duhh :P).
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan