2012-05-14 66 views
0

假設我有以下div如何在jQuery中使用bind()時獲取div的ID?

<div id="123" class="abc">Foobar</div> 

我知道我能做到這一點觸發時,該div是鼠標懸停功能:

$(".abc").bind({ 
    mouseenter : SomeFunction(id) 
}); 

有了這個,以前SomeFunction運行,我希望能夠把解壓出來的id這是div,它是「123」,並將它作爲參數傳遞給SomeFunction進行處理。我可以這樣做嗎?

回答

4
$('.abc').bind('mouseenter', function() { 
    SomeFunction($(this).attr('id')); 
}); 

或者,如果你真的想事件映射語法:

$('.abc').bind({ 
    mouseenter: function() { 
     SomeFunction($(this).attr('id')); 
    } 
}); 
+0

謝謝!像魅力一樣工作! – eastboundr

+0

真棒 - 很高興它工作! – jmar777

2
$(".abc").on({ 
    mouseenter : function() { 
     var id = this.id; 
     //or just 
     SomeFunction(this.id); 
    } 
}); 

在jQuery 1.7中,。對()方法是 的首選方法將事件處理程序附加到文檔。對於早期版本, .bind()方法用於將事件處理程序直接附加到 元素。

1
$(".abc").bind('mouseenter', function() { 
    var id = $(this).attr('id'); 
}); 
2
$(".abc").bind('mouseenter', function() { 
    var id = this.id; 
}) 

根據你的問題

$(".abc").bind({ 

mouseenter : function() { 
       SomeFunction(this.id) 
       } 

}); 
1
$('.abc').bind('mouseenter', function() { 
    SomeFunction(this.id); 
}); 
1

你並不需要把它傳遞給函數。有一個簡單的方法。

$(".abc").bind({ 
    mouseenter : SomeFunction /* This might be a new way for you. 
           But its very useful sometimes */ 
}); 

function SomeFunction() 
{ 
    var id = $(this).attr("id"); /* You can access $(this) in this function. 
            Here the $(this) will refer to the bound 
            element (i.e. of class ".abc") 
           */ 
} 

簡單!

+0

對於誰低估這個http://jsfiddle.net/4WVgJ/是一個工作的例子。 – Imdad