Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]Dlaczego nie działa
Kmils21
post
Post #1





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 29.12.2010

Ostrzeżenie: (0%)
-----


mam to:
$(this).find('input').each(function(){
var offset = $(this).offset();
console.log(offset.left + offset.top);
}
efekt:
offset.left = 0
offset.top = 0

dlaczego nie pobiera mi pozycji?

Ten post edytował Kmils21 3.05.2013, 15:50:44


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
Tajgeer
post
Post #2





Grupa: Zarejestrowani
Postów: 290
Pomógł: 48
Dołączył: 11.05.2008
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Na pewno chcesz wykonać .find() na rzecz $(this)?

Swoją drogą, to funkcja .each() nie jest poprawnie zamknięta.

Ten post edytował Tajgeer 3.05.2013, 15:55:35
Go to the top of the page
+Quote Post
Kmils21
post
Post #3





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 29.12.2010

Ostrzeżenie: (0%)
-----


Swoją drogą, to funkcja .each() nie jest poprawnie zamknięta.
Wiem - nie dałem całego kodu.
W linku podałeś inny kod niż mam ja. Tak na pewno .find() na rzecz $(this), bo to jest metoda, a ten $(this) to obiekt.

Ten post edytował Kmils21 3.05.2013, 15:59:59


--------------------
Go to the top of the page
+Quote Post
Tajgeer
post
Post #4





Grupa: Zarejestrowani
Postów: 290
Pomógł: 48
Dołączył: 11.05.2008
Skąd: Kielce

Ostrzeżenie: (0%)
-----


W takim razie pokaż więcej kodu, bo nie wiadomo względem czego chcesz pobrać offset().
Go to the top of the page
+Quote Post
Kmils21
post
Post #5





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 29.12.2010

Ostrzeżenie: (0%)
-----


(function($){
$.fn.test = function(){
$(this).find('input').each(function(){
var offset= $(this).offset();
console.log(offset.left + ' ' + offset.top);
});
};
})(jQuery);


--------------------
Go to the top of the page
+Quote Post
Tajgeer
post
Post #6





Grupa: Zarejestrowani
Postów: 290
Pomógł: 48
Dołączył: 11.05.2008
Skąd: Kielce

Ostrzeżenie: (0%)
-----


A przykładowy sposób wywołania? Czy po prostu funkcję test() odpalasz w momencie ładowania strony i tyle?
Go to the top of the page
+Quote Post
Kmils21
post
Post #7





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 29.12.2010

Ostrzeżenie: (0%)
-----


dziwne, bo tu działa http://jsfiddle.net/JBvyv/4/


--------------------
Go to the top of the page
+Quote Post
Tajgeer
post
Post #8





Grupa: Zarejestrowani
Postów: 290
Pomógł: 48
Dołączył: 11.05.2008
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Skoro działa, tzn. że u Ciebie widocznie jest jakiś błąd. W konsoli nie ma żadnych wpisów? Nie ma żadnych konfliktów z innymi bibliotekami JS?
Go to the top of the page
+Quote Post
Kmils21
post
Post #9





Grupa: Zarejestrowani
Postów: 128
Pomógł: 0
Dołączył: 29.12.2010

Ostrzeżenie: (0%)
-----


Właśnie nie ma żadnych błędów. Nie działa offset(), a Inne metody takie jak .css() czy fade() itp. już działają

Wywołuję funkcje na divie i wskazuje ona na zero, jednak kiedy nadam temu divowi id np,: "idediva" i wpisze w konsoli to

var x $("#idediva").offset; console.log(x.left); to już wskazuje wartość

Dobra zlamiłem. Element był "display:none" w momencie pobierania pozycji.

Ten post edytował Kmils21 3.05.2013, 16:24:49


--------------------
Go to the top of the page
+Quote Post
zegarek84
post
Post #10





Grupa: Zarejestrowani
Postów: 1 332
Pomógł: 294
Dołączył: 12.10.2008
Skąd: Olkusz

Ostrzeżenie: (0%)
-----


skoro rozszerzasz prototype jQ to po co przekazujesz this (który nie jest surowym elementem DOM tylko instancją obiektu jQ) do konstruktora jQ?
$(this).find... questionmark.gif
dopiero w metodzie .each this kontekstem odnosi się do elementów jQ...
http://jsfiddle.net/JBvyv/7/
[JAVASCRIPT] pobierz, plaintext
  1. (function($){
  2. $.fn.test = function(){
  3. this.find('input').each(function(){
  4. var offset= $(this).offset();
  5. console.log(offset.left + ' ' + offset.top);
  6. });
  7. };
  8. })(jQuery);
  9.  
  10. $("#a").test();
[JAVASCRIPT] pobierz, plaintext


--------------------
Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 19:34