• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Moj pierwszy slider, problem bo nie działa :)

+1 głos
152 wizyt
pytanie zadane 19 sierpnia 2016 w JavaScript, jQuery, AJAX przez Widemo Użytkownik (920 p.)
zamknięte 21 sierpnia 2016 przez Widemo

Witam mam taki oto kod i nie wiem co w nim nie działa, szukam juz jakis czas, ale nic nie znajduje. 

<!DOCTYPE html>
<html>

<head>
	<meta charset="UTF-8" />
	<link rel="stylesheet" href="style/style.css" />
	<link href="https://fonts.googleapis.com/css?family=Monda:400,700&subset=latin-ext" rel="stylesheet">
	<script src="js/jquery.js" type="text/javascript"></script>
	<script src="js/container_slider.js" type="text/javascript"></script>
</head>

<body>
	<div class="nav">
		<div class="nav_logo left">
			<div class="nav_logo_name left">
				Nazwa
			</div>
			<div class="nav_logo_subname left">
				SKANOWANIE LASEROWE
			</div>
		</div>
		<div class="nav_contact left">
			<div class="nav_contact_element left">
				<p>
					TEL : 507782027
				</p>
			</div>
			<div class="nav_contact_element left nav_contact_clickable">
				<p>
					Kontakt
				</p>
			</div>
		</div>
	</div>
	<div class="container">
		<div id="container_slider" class="container_slider">
			<div id="container_slider_arrow_left" class="container_slider_arrow left">
				&lt;
			</div>
			<div id="container_slider_arrow_right" class="container_slider_arrow right">
				&gt;
			</div>
		</div>
		<h1 style="text-align:center;">
				Skanowanie laserowe
			</h1>
		<div class="container_text">Najogólniej jest to inwentaryzacja wykonana metodą skanowania laserowego 3D poprzez rejestrację punktów pomiarowych (tzw. chmura punktów ) ze współrzędnymi w przestrzeni , które mogą być pokolorowane zdjęciami cyfrowymi. Uzyskane dane pomiarowe muszą
			być odpowiednio przefiltrowane i połączone wtedy uzyskamy realistyczne odwzorowanie mierzonego obiektu. Pomiary wykonane tą metodą cechuje bardzo duża dokładność (nawet do 2 mm ) i zdecydowanie krótszy czas ich wykonania <br><br>Zalety skaningu laserowego
			3D to , m.in.: największa możliwa dokładność , bardzo krótki czas wykonania pomiarów z możliwością skanowania w miejscach trudnodostępnych oraz w trakcie powadzonych robót , gdzie przerwanie robót nie jest wskazane , archiwizacja danych przy robotach
			polegających na ich zakryciu , np. betonowaniu , zasypaniu wykopów.
		</div>

	</div>
</body>

</html>
var ran = Math.floor(Math.random()*7) + 1;

var background = $(".container_slider").style.background;
var left = $("#container_slider_arrow_left");
var right = $("#container_slider_arrow_right");

left.onclick(function moveLeft(){
	background = "url(img/" + ran - 1 + ".jpg)";
})

 

komentarz zamknięcia: Sam rozwiązałem problem

1 odpowiedź

+1 głos
odpowiedź 19 sierpnia 2016 przez Magicone Nałogowiec (44,960 p.)

Problem leży w tym, że podczas deklaracji zmiennej background deklarujesz tak naprawdę kopię obecnego tła. Dzieje się tak, ponieważ przekazywany ciąg znaków jest typem prostym, co z kolei powoduje, że każde jego przekazanie jest wyłącznie kopią, a nie oryginałem. Doprowadza to do tego, że zmieniasz wyłącznie to, co przechowuje zmienna background, a nie styl danego elementu. Zamiast tego zadeklaruj konkretny element, do którego atrybutu style.background będziesz się odwoływał.

var sliderContainer = $('.container_slider');

left.onclick(function moveLeft() {
  sliderContainer.style.background = '…';
});

 

komentarz 19 sierpnia 2016 przez Widemo Użytkownik (920 p.)

zmieniłem i chrome zwraca błąd "Uncaught TypeError: left.onclick is not a function"

 

var ran = Math.floor(Math.random()*7) + 1;

var sliderContainer = $(".container_slider");
var left = $("#container_slider_arrow_left");
var right = $("#container_slider_arrow_right");

left.onclick(function moveLeft() {
  sliderContainer.style.background = 'url("../img/4.jpg")';
});

 

komentarz 19 sierpnia 2016 przez Magicone Nałogowiec (44,960 p.)
sprawdź, czy w ogóle left zawiera element
komentarz 19 sierpnia 2016 przez Widemo Użytkownik (920 p.)
chyba musi zawierac jezeli zostal przypisany
komentarz 19 sierpnia 2016 przez Magicone Nałogowiec (44,960 p.)
Otóż nie, bo skrypt jest wykonywany przed pojawieniem się elementów - przenieś ten z sliderem przed domknięciem tagu body, albo owiń kod w $(document).ready(/*funkcja*/);
komentarz 19 sierpnia 2016 przez Widemo Użytkownik (920 p.)
Dalej nic przenioslem na koniec dodalem tez ready i nic
komentarz 19 sierpnia 2016 przez efiku Szeryf (75,020 p.)
Przecież to nie ma onclick tylko click.. to obiekt jQuery. (left)

https://api.jquery.com/click/

Pierwszy przykład z brzegu to pokazuje.

Eh, używaj dokumentacji..
komentarz 20 sierpnia 2016 przez Magicone Nałogowiec (44,960 p.)
Nie do końca efik, owołując się do pojedynczego elementu jQuery nie dostajemy tablicy z wynikiem jQuery, tylko z konkretnym elementem DOM, przez co można na nim bezpośrednio operować; co nie zmienia faktu, że łączenie jednego z drugim nie ma sensu. Problem pewnie leży w tym, że nie potrafi schować kodu do zdarzenia załadowania elementu, albo ewentualnie coś w logice jeszcze leży, ale skoro chce mieć wszystko podane na tacy, to niech się ugryzie… :D

Podobne pytania

0 głosów
1 odpowiedź 170 wizyt
pytanie zadane 26 września 2016 w JavaScript, jQuery, AJAX przez agnieshax Nowicjusz (120 p.)
0 głosów
1 odpowiedź 103 wizyt
pytanie zadane 28 stycznia 2017 w HTML i CSS przez Waldemar Początkujący (390 p.)
0 głosów
2 odpowiedzi 91 wizyt
pytanie zadane 27 kwietnia 2017 w C i C++ przez diablo4c Początkujący (250 p.)
Porady nie od parady
Możesz ukryć, zamknąć lub zmodyfikować swoje pytanie, za pomocą przycisków znajdujących się pod nim. Nie krępuj się poprawić pochopnie opublikowanego pytania czy zamknąć go po uzyskaniu satysfakcjonującej odpowiedzi. Umożliwi to zachowanie porządku na forum.Przyciski pytania

66,384 zapytań

113,137 odpowiedzi

239,497 komentarzy

46,641 pasjonatów

Przeglądających: 289
Pasjonatów: 3 Gości: 286

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto dwie polecane książki warte uwagi. Pełną listę znajdziesz tutaj.

...