2011-05-31 26 views
6
üzerinde

Öğe kimliğini fareyle üzerine almak için javascript kullanıyorum.üzerindeki eleman kimliği

function getid() { 
      var e = document.getElementById(this); 
      alert(e); 
     } 

ve ben üzerinde işlevini sesleniyorum: Ama bunu almıyorum .. kodumu takdirde boş gösteriyor uyarınca ..

benim kodudur

<input type="image" id="img" 
         style="margin: 8px 4px 4px 4px; width:142px; height:117px;" src="images2.jpg" onmouseover="getid();" onmouseout="outmouse();" /> 

nasıl fare üzerinde öğeler kimliği alabilir miyim? JQuery

cevap

13

onay özellikleri içsel etkinliğin bu

<script> 
function getid(obj) { 
      alert(obj.id); 
     } 
</script> 


<input type="image" id="img" 
         style="margin: 8px 4px 4px 4px; width:142px; height:117px;" src="images2.jpg" onmouseover="getid(this);" onmouseout="outmouse(this);" /> 
2

:

$(input).mouseover(function() 
{ 
    var showID = $(this).attr("ID"); 
    alert(showID); 
}); 
6

değer fonksiyonu gövde olup. Bir nesneye olmadan bir işlevi çağırdığınızda onu window.thefunction() aynıdır,

onmouseover = function() { 
    getid(); 
} 

: Ne var aynıdır. Yani window.getid()'u this (getid işlevinin içinde) olarak çağırıyorsunuz, window nesnesi.

Gerçek olay özelliklerini gerçekten kullanmak istiyorsanız (ipucu: don't), o zaman this'un ne olduğu konusunda açık olmanız gerekir. Sonra Ancak

onmouseover="getid.call(this)" 

: this eleman değil öğenin kimliği olduğu için

var e = document.getElementById(this); 

... saçmalıktır.

Sen this gelen kimliği özelliği almak ve eleman aramak için kullanabilirsiniz, ama bu saçma olurdu sadece can verebilir:

var e = this; 
+0

+1 harika cevap! – Craig