Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [jQuery] Przekazanie parametrów obiektu jako argumentu funkcji
sma
post
Post #1





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 8.08.2006
Skąd: Gdańsk

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


Witam,
mam mała zamotke więc proszę o pomoc.

  1. function Wylacz(klikniete_id,wylacz_id)
  2.            {
  3.                  $(document).ready(function(){
  4.                        $('#' + klikniete_id).click(function(){
  5.                              var obj = { test: '' };
  6.                              var obj1 = { wylacz_id };
  7.                              jQuery.extend(obj,obj1);
  8.                              jQuery.each(obj, function(key, val) {
  9.                                    $('#' + val).attr("disabled", true);
  10.                              });
  11.                              
  12.                        });
  13.                  });
  14.            }


  1. Wylacz('WezelOtwierajacyRadio'," wlacz: 'WezelZnacznik' ");


Tak więc chcę przekazać przy wywołaniu funkcji listę pól do wyłaczenia jako tablicę asocjacyjną. Korzystam zatem z parametrów obiektu, które traktuję jako elementy tablicy.

Problem w tym, w jaki sposób przekazać te parametry jako argument fiunkcji. Powyższy przykład nie działa.
Jesli dam

  1. var obj = { wlacz: 'WezelZnacznik' };


na sztywno te parametry w funkcji to pola się wyłaczają. Jeśli tak jak w powyższym kodzie, przekażę je jako argumenty funckji, pola nie wyłaczają się.

Prosze o pomoc we wsakazaniu, czego nie widzę lub co źle robię.
Z góry dzieki

Ten post edytował sma 5.08.2009, 10:43:41
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Tak więc chcę przekazać przy wywołaniu funkcji listę pól do wyłaczenia jako tablicę asocjacyjną. Korzystam zatem z parametrów obiektu, które traktuję jako elementy tablicy.

A nie możesz ready wywołać przy dopinaniu zdarzeń, tylko musisz każdorazowo?

Cytat
Tak więc chcę przekazać przy wywołaniu funkcji listę pól do wyłaczenia jako tablicę asocjacyjną. Korzystam zatem z parametrów obiektu, które traktuję jako elementy tablicy.

A nie możesz po prostu przekazać obiektu jQ z tym radio...?

Przepisz ten kod od nowa, zgodnie z KISS, bo namotałeś...
Go to the top of the page
+Quote Post
sma
post
Post #3





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 8.08.2006
Skąd: Gdańsk

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


Cytat(erix @ 5.08.2009, 12:51:24 ) *
A nie możesz ready wywołać przy dopinaniu zdarzeń, tylko musisz każdorazowo?


W tamtej chwili był to zlepek wygooglowanych podpowiedzi na temat obsługi tablic asocjacyjnych w jQ, w odseparowanym pliku testowym. Docelowo poukładam i zooptymalziuje.

Cytat(erix @ 5.08.2009, 12:51:24 ) *
A nie możesz po prostu przekazać obiektu jQ z tym radio...?


Możesz to rozwinąć? Chodzi mi o przekazanie do funkcji dwóch tablic asocjacyjnych z polami do wyłaczenia i właczenia. Klucz tablicy będzie oznaczał typ akcji (show/hide, disable, enable), wartosc id pola. Funkcja ma sprawdzić, czy element o przekazanym w argumencie (1) ID został klikniety i jesli tak to ma ukryć/wyłaczyć przekazane w argumencie 2 pola (tablica asocjacyjna) i pokazać/właczyć przekazane w argumencie 3 pola (tablica asocjacyjna).

Zatem nie bardzo mogę dojść co dałoby przekaznaie obiektu jQ z radio lub w jaki sposób to zrobić aby osiągnąć zamierzony efekt.
Jesli błędnie podchodzę do tematu prosiłbym o wskazówki w krokach. Pogoogluję jesli czegoś nie będę wiedział o resztę dopytam.

Ten post edytował sma 5.08.2009, 13:59:38
Go to the top of the page
+Quote Post
erix
post
Post #4





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Zatem nie bardzo mogę dojść co dałoby przekaznaie obiektu jQ z radio lub w jaki sposób to zrobić aby osiągnąć zamierzony efekt.
Jesli błędnie podchodzę do tematu prosiłbym o wskazówki w krokach. Pogoogluję jesli czegoś nie będę wiedział o resztę dopytam.

Jak? No patrz:

Kod
$('#pole1, #pole2, #rodzic .pola, #rodzic input:checked').each(function(){
    $(this).attr(...);
});

i tyle kombinowania. (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

A jeśli już koniecznie chcesz funkcją, to robisz tak:
Kod
function disable(obj){
  obj.each(function(){
    $(this).attr(...);
  });
}

disable($('#pole, ...'));
Go to the top of the page
+Quote Post
sma
post
Post #5





Grupa: Zarejestrowani
Postów: 6
Pomógł: 0
Dołączył: 8.08.2006
Skąd: Gdańsk

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


Cytat(erix @ 5.08.2009, 15:10:45 ) *
A jeśli już koniecznie chcesz funkcją, to robisz tak:


Tak ale gdzie tu miejsce dla parametrów przypisanych do ID każdego pola, mówiących czy mam dane pole ukryć/pokazać, czy wyłaczyć/właczyć (a w przyszłości byc może zaostanie zaimplementowana dalsza obsługa). Ten sam efekt osiągnąłbym przekazując zwykłą tablicę z ideksami liczbowymi. Mi chodzi o przekazanie tablicy asocjacyjnej aby dla każdego ID pola przekazac takkże info co z nim mamy zrobić.

Nawiązując do manuala chciałem osiągnąć takie coś:

Kod
var obj = { show:ID_POLA_1, enable:ID_POLA_2, hide:ID_POLA_3, show:ID_POLA_4 itd };

Następnie:

jQuery.each(obj, function(key, val) {
      robie warunki dla 'key' i wykonuję odpowiednie operacje na polu o ID 'val'
    });


Gdy wpisuję
Kod
var obj = { show:ID_POLA_1, enable:ID_POLA_2, hide:ID_POLA_3, show:ID_POLA_4 itd };
na sztywno w funkcji, to wszystko działa, ale jak ten zestaw parametrów przekazać do funckji jako argument?
Go to the top of the page
+Quote Post
erix
post
Post #6





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Tak ale gdzie tu miejsce dla parametrów przypisanych do ID każdego pola, mówiących czy mam dane pole ukryć/pokazać, czy wyłaczyć/właczyć (a w przyszłości byc może zaostanie zaimplementowana dalsza obsługa).

Identyfikatory wpisujesz do podstawowej funkcji jQuery, zresztą - podałem przykładowe wywołanie.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 25.08.2025 - 01:18