0

假设我有以下内容div

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

我知道我可以这样做以在div鼠标悬停时触发一个功能:

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

有了这个,在SomeFunction运行之前,我希望能够提取出 this 的 id div,即“123”,并将其作为参数传递SomeFunction给它以供处理。我可以这样做吗?

4

6 回答 6

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

或者,如果您真的想要事件映射语法:

$('.abc').bind({
    mouseenter: function() {
        SomeFunction($(this).attr('id'));
    }
});
于 2012-05-14T18:37:25.910 回答
2
$(".abc").on({
   mouseenter : function() {
      var id = this.id;
       //or just
      SomeFunction(this.id);
   }
});

从 jQuery 1.7 开始,.on() 方法是将事件处理程序附加到文档的首选方法。对于早期版本,.bind() 方法用于将事件处理程序直接附加到元素。

于 2012-05-14T18:38:17.647 回答
2
$(".abc").bind('mouseenter', function() {
  var id = this.id;
})

根据你的问题

$(".abc").bind({

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

});
于 2012-05-14T18:38:44.933 回答
1
$(".abc").bind('mouseenter', function() {
    var id = $(this).attr('id');
});
于 2012-05-14T18:38:37.993 回答
1
$('.abc').bind('mouseenter', function() {
    SomeFunction(this.id);
});
于 2012-05-14T18:39:21.777 回答
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") 
                                 */
}

简单的!

于 2012-05-14T18:40:05.850 回答