Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/415.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从jquery中的事件获取elementId_Javascript_Jquery - Fatal编程技术网

Javascript 从jquery中的事件获取elementId

Javascript 从jquery中的事件获取elementId,javascript,jquery,Javascript,Jquery,这在IE中有效,但在FF中无效。我可以使用jquery进行此操作吗?我尝试使用JQuery事件api,但不知道如何从中获取ID。通过JQuery为您规范化事件对象,并将其传递到每个事件处理程序: function barvaInfo(event) { $(document).ready(function(){ var nid = window.event.srcElement.id; } 在处理程序中,此引用调用的dom节点。因此,this.id将处理元素的id。或者,事件对象拥有一个名为t

这在IE中有效,但在FF中无效。我可以使用jquery进行此操作吗?我尝试使用JQuery事件api,但不知道如何从中获取ID。

通过JQuery为您规范化
事件对象
,并将其传递到每个
事件处理程序

function barvaInfo(event) {

$(document).ready(function(){
var nid = window.event.srcElement.id;
}
在处理程序中,
引用调用的dom节点。因此,
this.id
将处理元素的
id
。或者,事件对象拥有一个名为
target
的属性,该属性也表示元素

编辑


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

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

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

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

事件。目标
不一定是同一元素。事件是泛型类型。我知道我可以在泛型元素上使用类或其他东西。@patrick:是的,先生。我忘记了嵌套节点和冒泡。我将在.thx中更正我的答案,我尝试$('div').bind('mouseover',function(event){var nid=this.id;});但是我现在得到了30个ID,而不是我称之为mouseoverIt的ID。看起来,当DOM完成加载时,您正试图获得元素的ID。您正在尝试获取哪个事件的src元素?
窗口。event
特定于IE。其他浏览器的事件处理程序中有一个参数,该参数在事件实际发生时获取一个
event
对象。如果我在mousover而不是on上需要它怎么办click@senzacionale:然后指定一个
mouseover()
事件。我会更新我的答案,但原则是一样的。编辑:更新我的答案,使用
mouseover
而不是
click
…您也不应该认为
mouseenter
可能更适合您的情况。它将只在目标元素上启动处理程序,而不会启动其子元素。
     // 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
}