2 Javascript/css komponenter:

Tags:    html css

<< < 12 > >>
Hej.
Jeg er ved at bygge en hjemmeside hvor jeg har en menubar og et billed galleri på samme side.

neden stående link føre til siden hvor jeg har koblet de to ting sammen.
(http://www.eis.1go.dk/billedgalleri.html)

følger man linket virker de to ting fint fordi at de er sat op i et frameset og derved jo er to forskellige dokumenter men flytter jeg dem sammen på et dokument fungere menubaren ikke.

Jeg har prøvet mange forskellige ting men lige meget hvad jeg gør kan jeg ikke få de to javascript og css baserede dele til at fungere på samme side.

Er der nogen der har et smart løsningsforeslag så sig endelig til.

på forhånd tak.



Der er utroligt meget kode, inklusiv noget der ligner nogle generelle biblioteker, hvoraf jeg kun kender jQuery. Jeg ved ikke om de andre kan give problemer. Kan du ikke give et link til en side hvor du har sat tingene sammen og hvor det ikke virker?



Der er utroligt meget kode, inklusiv noget der ligner nogle generelle biblioteker, hvoraf jeg kun kender jQuery. Jeg ved ikke om de andre kan give problemer. Kan du ikke give et link til en side hvor du har sat tingene sammen og hvor det ikke virker?


Joh selvfølgelig.
www.eis.1go.dk/billed-kopi.html



Det er fordi de to scripts du har fundet bruger to forskellige biblioteker, og jQuery og Prototype prøver begge at definere funktionen $, hvilket jo ikke går.

Du kan sikkert finde noget her:
http://docs.jquery.com/Using_jQuery_with_Other_Libraries



Hej igen.

Det hjalp på menubareren men nu har jeg det problem at billedgalleriet åbner billederen på en blank side.

Jeg tror at problemet ligger i link'ne der høre til de to grupper:

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

billedgalleri:
<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />

Når jeg har sat <script>'ne sammen så ser de sådan ud:

<script type="text/javascript" src="menucode/jquery.js"></script>
<script type="text/javascript" src="menucode/interface.js"></script>
<link href="style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
$.noConflict();
$('js/prototype.js').hide();
$('js/scriptaculous.js?load=effects,builder').hide();
$(js/lightbox.js).hide();
</script>
<!--[if lt IE 7]>
<style type="text/css">
.dock img { behavior: url(iepngfix.htc) }
</style>
<![endif]-->

<style type="text/css">
img, div { behavior: url(iepngfix.htc) }
</style>

<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />



Jeg kan ikke få den kode du har postet her til at give mening, og jeg kan ikke se du har uploaded den ændrede kode... Prøv lige at uploade igen.



Jeg kan ikke få den kode du har postet her til at give mening, og jeg kan ikke se du har uploaded den ændrede kode... Prøv lige at uploade igen.


så skulle den gerne være uploadet.



Men nu har du jo fjernet hele Prototype-biblioteket, så er det jo klart at galleriet, som bruger det, ikke virker. Desuden bruger du stadig $ til jQuery, selvom du lige har kaldt noConflict for at give $ tilbage til Prototype, men jQuery delen virker stadig fordi du ikke fik inkluderet Prototype.

Altså: Put de script-biblioteker du har slettet tilbage, og ret den kode (som ligger direkte i HTML filen), så den bruger den variabel du vælger i $.noConflict i stedet for $.



Okay nu stod jeg af.

Hvad er der for nogle koder jeg har slettet? koderne er da identiske bortset fra at nogle af bibliotekerne er flytte i noConflict koden.

og den del med at jeg skal ændre $ til en anden variabel er det for den javascript som ligger i bunden af dokumentet?



Hvad er der for nogle koder jeg har slettet? koderne er da identiske bortset fra at nogle af bibliotekerne er flytte i noConflict koden.


frame-versionen indlæser følgende eksterne scripts:
jquery.js
interface.js
js/prototype.js
js/scriptaculous.js?load=effects,builder
js/lightbox.js

Din nye version indlæser følgende:
menucode/jquery.js
menucode/interface.js

Altså har du slettet tre af de fem indlæste filer. De skal tilbage igen.

Desuden giver den kode du har indsat slet ingen mening:
<script type="text/javascript">
$.noConflict();
$('js/prototype.js').hide();
$('js/scriptaculous.js?load=effects,builder').hide();
$('js/lightbox.js').hide();
</script>

Slet den bare

og den del med at jeg skal ændre $ til en anden variabel er det for den javascript som ligger i bunden af dokumentet?


Ja, hvis vi antager at du vælger at indlæse jquery først og derefter prototype burde følgende ændring kunne gøre det (ikke testet):

Ret:
$(document).ready(function()
Til:
jQuery(document).ready(function($)

du behøver altså ikke bruge jQuery.noConflict, hvis bare du indlæser jQuery først.



Jeg er ikke sikker på at jeg har gjordt det rigtige.

Jeg har genindsat de scripts du søgte her:

<!--menubar-->
<script type="text/javascript" src="menucode/jquery.js"></script>
<script type="text/javascript" src="menucode/interface.js"></script>
<link href="style.css" rel="stylesheet" type="text/css" />

<!--billedgalleri-->
<script src="js/prototype.js" type="text/javascript"></script>
<script src="js/scriptaculous.js?load=effects,builder" type="text/javascript"></script>
<script src="js/lightbox.js" type="text/javascript"></script>
<link rel="stylesheet" href="css/lightbox.css" type="text/css" media="screen" />


Og ændret koden som du sagde:
<!--dock menu JS options -->
<script type="text/javascript">

jQuery(document).ready(
function($)
{
$('#dock').Fisheye(
{...


Dette relsultere i at siden loader lightbox effekten med det samme og undlader at vise siden.

Kan man eventuelt sætte en anden kode ind i stedet for Jqery?




<< < 12 > >>
t