Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wywołanie Jquery po otworzeniu SELECT-a, Dynamiczne ładowanie Selektów i jQuery po załadowaniu nowego Selekta
doktorek
post
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 26.07.2010

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


Hej

Mam dziwny problem...

Mam kilka rozwijanych <select></select>
Są one ładowane po kolei - po wybraniu pierwszego selekta - ładuje się kolejny.
ładowanie odbywa się przez javascript onChange=wgraj_kolejny()

Ale... problem jest taki, że jest jeszcze jeden skrypt jquery, który jest ładowany na starcie strony i on upiększa te selekty...
Ale upiększa tylko ten pierwszy, który jest widoczny na starcie.

Aby upiększył kolejny, który jest ładowany po wybraniu pierwszego należy go wywołać raz jeszcze.

I teraz jak zrobiłem sobie skrypt, który wywołuje to jquery w momencie kliknięcia na <select> to działa (IMG:style_emoticons/default/smile.gif)
Ale nie działa kiedy kliknę na <select>, którego to jquery dotyczy... np.

Jak otworze selekt o id '#testowy' to jquery dziala i $("#drugi").customselect(); wywoluje sie poprawnie.
Ale jak otworze selekt o id '#drugi' to juz nie dziala (IMG:style_emoticons/default/smile.gif)

<select id="testowy" class="test">
<option value="1">1</option>
<option value="2">2</option>
</select>

<script type="text/javascript">
$('#testowy').click(function(){
$("#drugi").customselect();
});
</script>

<script type="text/javascript">
$('#drugi').click(function(){
$("#drugi").customselect();
});
</script>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
gitbejbe
post
Post #2





Grupa: Zarejestrowani
Postów: 516
Pomógł: 63
Dołączył: 27.08.2012

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


jest jeszcze coś takiego jak "delegate" w jquery. Za pomocą tego dynamicznie sprawdzasz wskazane elementy - również te które dopiero będą wygenerowane.

.klasa_select -> twoja nazwa klasy identycznej dla każdego selekta którego chcesz przystroić

  1. $("body").delegate(".klasa_select", "click", function(){
  2.  
  3. var element = $(this);
  4.  
  5. // prosty filtr aby wykonać tylko raz akcje dla jednego elementu
  6. if(element.attr('active') == false) {
  7. element.customselect();
  8. element.attr('active', true);
  9. }
  10.  
  11. });


i to by było na tyle jeśli chodzi o Twój problem : )

Ten post edytował gitbejbe 24.09.2016, 21:47:19
Go to the top of the page
+Quote Post

Posty w temacie


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: 13.10.2025 - 12:47