如果我用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
答案 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
答案 2 :(得分:0)
$(".test_span").mouseover(function(){
var target = window.event.target || window.event.srcElement;
alert(target);
});
你可以尝试这个,这很简单: