Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Nazwa pola ze zmiennej
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
WiruSSS
Czy jest jakiś sposób aby w tym przykładzie

[JAVASCRIPT] pobierz, plaintext
  1. var direction = 'left',
  2. value = 100;
  3.  
  4. $('#jakis_tam_element').animate({direction: value+'px'});
[JAVASCRIPT] pobierz, plaintext


parametr animate (czy jakiejkolwiek innej metody) przyjął nazwę ze zmiennej? W przykładzie powyżej direction jest traktowane dosłownie.

[EDIT]
...oczywiście chodzi mi o rozwiązanie inline a nie w stylu

[JAVASCRIPT] pobierz, plaintext
  1. var direction = 'left',
  2. value = 100,
  3. slide = {};
  4. slide[direction] = value;
  5.  
  6. $('#jakis_tam_element').animate(slide);
[JAVASCRIPT] pobierz, plaintext
kamil4u
Cytat
...oczywiście chodzi mi o rozwiązanie inline a nie w stylu

Właśnie tak to się robi. Zostaje jeszcze eval, ale to najgorsze rozwiązanie.

Opisz po co Ci to - może znajdziemy jeszcze lepsze rozwiązanie.
WiruSSS
właśnie po to, z tym ze tych parametrów będzie więcej, a ich nazwy będą zależne od położenia samego obiektu względem rodzica
kamil4u
To zrób funckcję i po problemie smile.gif

Kod
function mojaAnimacja( el, type, value ){
     json= {};
     json[ type ] = value;

     $( el ).animate( json );
}

mojaAnimacja( "#moje-id", "left", "300px");
mojaAnimacja( "#moje-id", "top", "300px");
mojaAnimacja( "#moje-id", "width", "300px");


Oczywiście lepiej będzie jak stworzysz to jako własną funkcję/metodę jQuery: http://jquery-howto.blogspot.com/2008/12/h...nctions-to.html

Pozdrawiam
PrinceOfPersia
też mi się wydaje, że to co zostało już powiedziane: albo w kilku linijkach, albo zrobić funkcję.

chociaż przykład mojego przedmówcy w sumie niewiele rozwiązuje, bo i tak trzeba ileś linijek wrzucić na pisanie mojaAnimacja. Może coś takiego ?

Kod
    function makeObject() {
        var obj = {};
        Array.prototype.slice.call(arguments).forEach(function(kv) {
            obj[kv[0]] = kv[1];        
        });
        return obj;
    };

a potem:

Kod
    var direction = 'left', value = 400, direction2 = 'top', value2 = 60;
      
    $("#test").animate(makeObject([direction, value], [direction2, value2]));


smile.gif

WiruSSS
...jednak zostałem przy opcji z dodatkową zmienną, efekt można zobaczyć pod tym samym linkiem. Jedyne co mi się nie podoba, to to, że zmienne muszę tworzyć 3 razy. Jak najlepiej przekazać te zmienne do metod showMenu i hideMenu, przez parametry? Czy może jest lepszy sposób?

http://jsfiddle.net/WiruSSS/zPXUK/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.