【发布时间】:2015-04-01 15:05:47
【问题描述】:
在下面链接的小提琴中,有一些我需要排除故障的示例代码。为了在小提琴中进行演示,我已经从原始代码(未编写)中对其进行了一些简化。
$(document).ready(function(){
$("ul").children().each(function(i){
$(this).click(function(){
var indexItem = i;
if(indexItem == 0){
displayId();
}
if(indexItem == 1){
displayNode();
}
if(indexItem == 2){
displayNodevalue();
}
});
});
})
function displayId(event){
// below returns undefined not what I want
// var $listID = jQuery(this).attr("id");
var $listID = event.target.id;
alert($listID);
}
function displayNode(event){
var listNodename = event.target.nodeName;
alert(listNodename);
}
function displayNodevalue(event){
var listValue = event.target.nodeValue;
alert(listValue);
}
如何获取这些项目的 event.target 属性?控制台显示:
Uncaught TypeError: Cannot read property 'target' of undefined
我在下面搜索了各种可能的解决方案。他们很好,但我没有找到答案。
How to pass the event object to a named function
Getting the ID of the element that fired an event
https://api.jquery.com/event.target/
如果我错过了这些线程中的答案,请告诉我。似乎这个问题应该在某个地方得到回答,但我很难找到它。如果没有,我会很感激一些帮助,告诉我这段代码有什么问题以及如何获取事件目标。谢谢。
【问题讨论】:
-
请不要绕过警告信息。 jsfiddle.net 的链接必须附有代码。
-
@Satpal,我没有注意到警告。我发布代码没有问题,过去我在发布时被建议使用 fiddles 或 codepen 等来显示代码,因为它更容易调试。这就是为什么我把小提琴放在第一位的原因。
标签: javascript jquery events targeting