Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> bind i unbind lub on i off dla zdarzenia "click", problem z przypięciem ponownym zdarzenia "click"
damianooo
post
Post #1





Grupa: Zarejestrowani
Postów: 496
Pomógł: 2
Dołączył: 15.07.2011
Skąd: Katowice

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


Witam,

Mam następujący problem z jQuery. Ustawiłem sobie że dla pewnego zdarzenia ma zostać odwiązane zdarzenie "click" dla wybranego elementu DOM ... natomiast jeżeli dane zdarzenie nie wystąpi to ma byc ponownie dowiązane zdarzenie "click" dla wybranego elementu. W skrócie ma być tak że jak wybiorę jedną z opcji pola wyboru to button Save ma być nieaktywny, jeżeli wybiorę inną z opcji to ma być button Save aktywny. (dodatkowo dodam że button Save nie jest buttonem tylko tagiem <a> ) . Niestety nie działa mi ponowne dowiązanie zdarzenia "click" przez co nie mogę zapisać swoich zmian na stronie.

Mój kod
  1. $("#my_select_field").change(function(){
  2.  
  3. var costam = $(this).val();
  4.  
  5. function changeType(costam){
  6.  
  7. $.ajax({
  8. url: "costam",
  9. type: "POST",
  10. dataType: "json",
  11. data: {
  12. costam: costam
  13. },
  14. success: function(data){
  15.  
  16. if(data){
  17.  
  18. if(wartosc == wartosc){
  19. $('#buttonSave').unbind('click');
  20. }else{
  21. $('#buttonSave').bind('click');
  22. }
  23.  
  24. }
  25. }
  26. })
  27. }
  28.  
  29. changeType(costam);
  30. });



próbowałem też tak:

$('#buttonSave').on('click');

albo tak:

$('#buttonSave').bind({
click: function() {},
});


niestety nic nie działa ...

jak mogę dowiązać ponownie zdarzenie "click" do buttona Save ? ...


dzięki

Ten post edytował damianooo 9.04.2013, 22:11:06
Go to the top of the page
+Quote Post
tolomei
post
Post #2





Grupa: Zarejestrowani
Postów: 450
Pomógł: 135
Dołączył: 18.11.2010
Skąd: Wschowa

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


Witaj.

Pierwszy przykład, który podałeś powinien działać(oczywiście rozumiem, że to pseudokod).
Jednej rzeczy jednak nie rozumiem. Co Ci daje takie użycie funkcji bind:

[JAVASCRIPT] pobierz, plaintext
  1. // ...
  2. $('#buttonSave').bind('click');
  3. // ...
[JAVASCRIPT] pobierz, plaintext


Dla mnie to jest bez sensu. Jeśli chcesz obsłużyć zdarzenie 'click' to dajesz funkcję, która ma się wykonać przy zdarzeniu czyli coś w tym stylu:

[JAVASCRIPT] pobierz, plaintext
  1. // ...
  2. $('#buttonSave').bind('click', function() {
  3. // obsluguje zdarzenie
  4. });
  5. // ...
[JAVASCRIPT] pobierz, plaintext


Gdy do elementu przypiszesz obsługę zdarzenia 'click' za pomocą metody click() lub bind() jesteś wstanie także za pomocą funkcji unbind() usunąć obsługę zdarzenia. Jeśli Ci to nie działa to może masz jakiś błąd logiczny?

Najlepiej utwórz jakiś kod(nie pseudokod) na jsfiddle.net lub jsbin.com, który będzie demonstrował Twój problem i podaj linka tutaj to będziemy pomagać.

Pozdrawiam.
Go to the top of the page
+Quote Post
damianooo
post
Post #3





Grupa: Zarejestrowani
Postów: 496
Pomógł: 2
Dołączył: 15.07.2011
Skąd: Katowice

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


ok miałeś rację , tamto było bezsensu .. przynajmniej teraz wiem że inaczej to należało zaimplementować ....

funkcję odpowiedzialną za kliknięcie w buttonn Save wywołałem tutaj:

$('#buttonSave').bind('click', function() {
wywolanie_mojej_funkcji();
});

działa pięknie ... pozdrawiam
Go to the top of the page
+Quote Post
tolomei
post
Post #4





Grupa: Zarejestrowani
Postów: 450
Pomógł: 135
Dołączył: 18.11.2010
Skąd: Wschowa

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


Jeżeli masz zdefiniowaną funkcję, którą chcesz podpiąć pod zdarzenie, możesz podać ją jako parametr.
W ten sposób:

[JAVASCRIPT] pobierz, plaintext
  1. $('#buttonSave').bind('click', wywolanie_mojej_funkcji); // bez nawiasów okrągłych
[JAVASCRIPT] pobierz, plaintext


Pozdrawiam.
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: 3.10.2025 - 12:05