Nie działają skrypty po podłączeniu Lightboxa

0

Po podłączeniu Lightboxa nie działają mi własne skrypty, próbowałem wklejać kod w różne miejsca na stronie i nic to nie dało. Dodam że bez biblioteki lightboxa wszystko mi dobrze śmiga, zbieżność nazewnictwa wydaje się niemozliwa.

kawałek kodu z sekcji <head>

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

   <!-- Moje skrypty -->
    <script src="lib/script.js"></script>

    <!-- NavMenu -->
    <link rel="stylesheet" href="navmenu/styles.css">
    <script src="navmenu/script.js"></script>

    <script language="JavaScript" type="text/javascript">
      $(document).ready(function(){
        $('.carousel').carousel({
          interval: 3000
        })
      });    
    </script>

Mój script.js

 
$(document).ready(function() {

$( "#test" ).click(function() {
  alert( "Handler for .click() called." );
});


$(".facebook").hover(function() //on over 
	{
		$('.facebook').animate({marginTop:'-5px'});
	},
	function() //on out
	{
		$('.facebook').animate({marginTop:'0px'});
	}
	);

$(".googleplus").hover(function() //on over 
	{
		$('.googleplus').animate({marginTop:'-5px'});

	},
	function() //on out
	{
		$('.googleplus').animate({marginTop:'0px'});
	}
	);

$(".email").hover(function() //on over 
	{
		$('.email').animate({marginTop:'-5px'});
	},
	function() //on out
	{
		$('.email').animate({marginTop:'0px'});
	}
	);






});



0

Jakieś błędy w konsoli są?

0

Uncaught TypeError: $(...).ready is not a function

w script.js

teraz przeniosłem biblioteke lightboxa gdzies za moje skrypty i w konsoli taki błąd:

Uncaught TypeError: Cannot read property 'click' of null

0

To oznacza, że nie masz załadowanej biblioteki jQuery dodaj ją przed ładowanie script.js

0

Tuż przed zamknięciem <body> załaduj jQuery (http://jquery.com/download/), a za tym dopiero swój skrypt

0

skrypty działają ale teraz Lightbox się nie ładuje. pewnie też korzysta z jquery

0

Tak lightbox tez korzysta z jquery (plik prototype.js jest z jego biblioteki). W jakiś sposób mój skrypt i ten ze sobą kolidują. Czy można wywołać dwa razy funkcję ().redy na stronie? W załączniku obraz z kinsoli

0

Z konsoli wynika, że nie masz załadowanej biblioteki jQuery. Wklej to <script src="https://code.jquery.com/jquery-1.12.1.min.js"></script> na początku sekcji gdzie deklarujesz wszystkie biblioteki Javascript.

0

suvak21 z konsoli wynika ze nie przenioslem bootstrapa na koniec z jquery. Wróciłem do pierwotnej wersji i jQuery mam załadowane i jest obecnie przed wszystkimi bibliotekami. Działa mi wszystko, bootstrap, lightbox jedynie problem jest w moich skryptach, pokazuje taki błąd

Uncaught TypeError: Cannot read property 'hover' of null

czyli moje skrypty sa zaladowane ale coś je "blokuje". Dodam jeszcze raz że po odłączeniu biblioteki lightboxa wszystko smiga jak ta lala.

Cannot read property 'hover' of null -> tak jakby nie widział nic w funkcji hover. (kod do podglądniecia w pierwszym poscie, wykomentowałem zdarzenie click dla ("#test") bo wcześniej je pokazywał jako puste)

0

Daj link do strony, będzie prościej, bo dogadać się z Tobą nie da...

Edit: Prototype i jQuery się gryzą ze sobą. Nie używaj ich razem, albo naucz się korzystać z trybu noConflict w jQuery (ale to i tak głupi pomysł ładować obie biblioteki razem).

0

http://pure-effect.esy.es/gallery.php

w tej zakładce działa lightbox ale za to nie działa mój skrypt z animacją ikonek sociali. Można zobaczyć jego działanie w zakładce home

0

Hej,

Testowałem ikonki społecznościowe i zamieniając znak dolara na 'jQuery', wszystko działa poprawnie.

jQuery('.facebook').hover(function() {
    jQuery(this).animate({
        'margin-top': '-5px'
    });
});

To tyle w kwestii ikon, jak będę miał chwilę to jeszcze podłubię w tym ;) ( chyba że wcześniej problem zostanie rozwiązany :P ).

0

Racja @czubeka2 działa ale dlaczego? Raz działa samo $() a raz z jQuery.... nie ogarniam

0

Z tego co zrozumiałem:

  1. ładujesz jQuery (dostępne pod jQuery lub $
  2. ładujesz lightboxa, który jako zależność ma Prototype, który także korzysta z symbolu $ (więc nadpisuje $ używane przez jQuery),
  3. ładujesz własny kod, który korzysta z $ zakładając (błednie), że jest po dnim jQuery - dlatego jQuery działa, a $ już nie.
0

@Maciej Cąderek Dzięki za logiczne wytłumaczenie. Prototype to jest jakiś kolejny framework? Jeśli w przyszlosci się z nim spotkam to będzie się kłócić z jQuery?

1 użytkowników online, w tym zalogowanych: 0, gości: 1