Javascript: onBlur olayına JS ile yeni işlem ekleme?

Kodla Büyü

halilturkoglu

Seçkin Üye
Seçkin Üye
Mesajlar
735
Merhaba arkadaşlar,

Javascript 'te şöyle bir fonksiyona ihtiyacım var.
Elimdeki nesne bu:
Kod:
<input type=text name=txt1 onblur="javascript: this.value='baska bişey';" value='bişey'>

İhtiyacım olan ise:
Kod:
function islev_ekle(nesne,olay,islev)
 {
 if(olay=="onblur")
  {
  document.getElementById(nesne).onblur= function()
   {
    daha_onceki_onblur_olayı();
    islev();
   }
  }
 }
gibi bir şey.

islev_ekle("txt1","onblur",alert('deneme')); yazdığımda nesen hem önceki hemde sonraki işlevleri çalıştırabilmeli.
Örnek:
Kod:
<input type=text name=txt1 onblur="javascript: this.value='baska bişey'; alert('deneme');" value='bişey'>

Bu konuda bana önerebileceğiniz herhangi bir yöntem var mı? Temelde sadece var olan olayı fonksiyon olarak alabilmemi sağlasa da olur.
 
Konu eski ama belki başkalarının işine yarar. eo_fnEkle fonksiyonu istenen fonksiyona ek yapar ve yeni bir fonksiyon döndürür, fnekle() fonksiyonundaki gibi kullanabilirsiniz. Fonksiyon sadece olay fonksiyonlarına değil, diğer fonksiyonlara da ek yapmak için kullanılabilir.

Kod:
<html>
<head><title>Fonksiyona Ek</title></head>
<body>

<input type="text"><input type="text"><input type="text" id="ittBir"><input type="text">
<input type="button" id="btn1" onclick="fnekle('ittBir');" value="abc" />
<br/>
Tuşu kaç kere tıklarsanız o kadar onblur olayına ek yapar...

<script type="text/javascript">

function eo_fnEkle(fn,m) {
	if(typeof(fn)=="function"){
		fn = fn.toString();
		fn = fn.substring(fn.indexOf("{")+1,fn.lastIndexOf("}"));
	} else fn="";
	return new Function(fn + " " + m);
}
function fnekle(e) {
	e = document.getElementById(e); if (e==null) return;
	e.onblur = eo_fnEkle(e.onblur,"alert('Merhaba')");
}
</script>

</body>
</html>
 
çok teşekkür ederim hocam. sorunu başka yöntemlerle halletmiştim ama bu hala işime yarayabilir.
 
BBNET
Geri
Üst