最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - Uncaught TypeError: Cannot read property 'target' of undefined - Stack Overflow

programmeradmin3浏览0评论

I want to create tabs on pure js and decided to implement it through "data-attr".

var allTabs = document.querySelectorAll('.tab'); //all tabs on page

var clickTabHandler = function (event) {

    var target = event.target;

    var id = target.getAttribute('data-content');

    alert(id);

};

for (var i = 0; i < allTabs.length; i++) {
    allTabs[i].onclick = clickTabHandler(event);
}

in the console get : Uncaught TypeError: Cannot read property 'target' of undefined;

Why?

I want to create tabs on pure js and decided to implement it through "data-attr".

var allTabs = document.querySelectorAll('.tab'); //all tabs on page

var clickTabHandler = function (event) {

    var target = event.target;

    var id = target.getAttribute('data-content');

    alert(id);

};

for (var i = 0; i < allTabs.length; i++) {
    allTabs[i].onclick = clickTabHandler(event);
}

in the console get : Uncaught TypeError: Cannot read property 'target' of undefined;

Why?

Share Improve this question asked Mar 10, 2016 at 11:47 Nikita IvanovNikita Ivanov 311 gold badge1 silver badge4 bronze badges 1
  • 2 where is that loop called? you are immediately invoking clickTabHandler – Daniel A. White Commented Mar 10, 2016 at 11:48
Add a ment  | 

1 Answer 1

Reset to default 3

replace this line

allTabs[i].onclick = clickTabHandler(event);

by

allTabs[i].onclick = clickTabHandler;

since this and event will be passed to it implicity

发布评论

评论列表(0)

  1. 暂无评论