使用trigger()无法获得事件目标

时间:2015-06-11 09:41:47

标签: javascript jquery

如果我用trigger()调用它,有人可以帮我说明为什么我无法获得事件目标吗?

我有这个HTML:

<span class="test_span" onmouseover="Test()">
    test
</span>

和这个JQuery代码:

function Test() {
    var target = window.event.target || window.event.srcElement;
    console.log(target);
}
$(".test_span").trigger('mouseover');

如果运行它我将收到错误:

  

未捕获的TypeError:无法读取属性&#39; target&#39;未定义的

但如果我用鼠标悬停元素,它将返回:

<span class="test_span" onmouseover="Test()">
    test
</span>

我该如何解决这个问题?我需要用触发器模拟点击并获取对象。 JSFIDDLE

3 个答案:

答案 0 :(得分:2)

试试这个

$('.span_width').on('mouseover', function(e) {
    var target = e.target || window.event.srcElement;
    console.log(target);
});

答案 1 :(得分:2)

不要使用inline事件处理程序。使用on

在代码中查看内联注释。

HTML:

<span class="span_width"><!-- Remove onmouseover="Test()" -->
    test
</span>

使用Javascript:

// on mouseover of span_width
$('.span_width').on('mouseover', function (e) {
    // Use event object to get target
    console.log(e.target);
}).trigger('mouseover');
// Trigger mouseover event

演示:https://jsfiddle.net/tusharj/36rx39t5/3/

答案 2 :(得分:0)

$(".test_span").mouseover(function(){
    var target = window.event.target || window.event.srcElement;    
    alert(target);
});

你可以尝试这个,这很简单: