从jquery中的event获取elementId

时间:2011-01-26 14:17:27

标签: javascript jquery

function barvaInfo(event) {

$(document).ready(function(){
var nid = window.event.srcElement.id;
}

这适用于IE,但不适用于FF。我可以使用jquery吗?我尝试使用JQuery事件api,但后来我不知道如何从中获取ID。

2 个答案:

答案 0 :(得分:4)

如果你正在使用jQuery,你需要为你的事件处理程序分配一个参数,然后在每个事件中将参数传递给你的函数。

您可能还希望从接收事件的元素的上下文中调用它。

     // some mouseover event handler
$('div').mouseover( function( e ) { 
    barvaInfo.call( this, e )
});

function barvaInfo( event ) {
       // element that originated the event
    var nid = event.target.id;

    // in this function, because we're using .call() to invoke it, 
    //    "this" will reference the element that invoked the handler
}

答案 1 :(得分:2)

event object通过jQuery为您规范化并传递到每个event handler

$('someelement').bind('click', function(event) { 
    var nid = this.id; // event.target.id
});

在处理程序中,this指的是调用的dom节点。因此this.id将解决元素的id。或者,事件对象拥有一个名为target的属性,该属性也代表元素。

修改

正如patrick dw指出的那样,this将始终是对事件处理程序绑定到的节点的引用。 event.target正是它所说的,即实际目标的元素。请参阅注释以获取示例链接。