[JS] Dynamiczne przypisanie zdarzenia

Odpowiedz Nowy wątek
2005-06-24 13:34
0

Cześć mam obrazek, który ma odpowiednio reagować na zdarzenie onClick(tzn. raz ma reagować, innym razem nie)

Zrobiłem tak:

pImg = document.getElementById("prev");
if(warunek) pImg.onClick = "alert('OK');";
else pImg.onClick = "";

Jednak w ogóle na zdarzenia nie reaguje. Co jest nie tak?

Pozostało 580 znaków

2005-06-25 19:39
0
Juhas napisał(a)

Jednak w ogóle na zdarzenia nie reaguje. Co jest nie tak?

zdarzenia to nic innego jak funkcje a raczej metody obiektów które wywoływane są przez przeglądarkę gdy 'coś' się wydarzy :)

czyli zdarzenia definiuje się tak jak funkcje natomiast Ty w swoim kodzie stworzyłeś zwyczajną właściwość typu tekstowego do której przypisałeś łańcuch znaków, poza tym nazwy zdarzeń piszę się z małych liter...

masz trzy możliwości:

  var obj = new Object();

  // 1.

  obj.onclick = new Function('alert("click")');

  // 2.

  obj.onclick = function() {
    alert('click');
  }

  // 3.

  function clickFunc() {
    alert('click');
  }

  obj.onclick = clickFunc;

Pozostało 580 znaków

2005-06-25 20:54
0

inaczej - ty zrobiłeś tak że jeśli warunek zostanie spełniony to element będzie miał ustawione zdarzenie onclick (chociaż błędnie) a jak nie to nic - gdzie jest wywoływana funkcja to robiąca ? Podejrzewam że wywołujesz ją mimo wszystko tylko raz więc zdarzenie już jest przypisane więc powinno być tak:

pImg = document.getElementById('prev');
pImg.on<b>c</b>lick=<b>function(){</b>
 if(warunek) alert('ok');
<b>}</b>

Dwie zasady gwarantujące sukces:
1. Nigdy nie mów nikomu wszystkiego<span style="color: white">

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0