Javascript 为什么';我的点击处理器不工作吗?

Javascript 为什么';我的点击处理器不工作吗?,javascript,jquery,html,Javascript,Jquery,Html,我有这个链接 <a class="tt-link" data-link="report.html?id=0">Open</a> 这不起作用,就像我的选择器错了一样,但事实并非如此。无论发生什么,都没有控制台输出。在JSFIDLE示例中单击打开的链接会在控制台中产生以下错误: event.target.data不是函数 因为您使用的是jQuery,所以应该使用$(this)来访问元素 $(document).on('click', '.tt-link', function

我有这个链接

<a class="tt-link" data-link="report.html?id=0">Open</a>
这不起作用,就像我的选择器错了一样,但事实并非如此。无论发生什么,都没有控制台输出。

在JSFIDLE示例中单击打开的链接会在控制台中产生以下错误:

event.target.data不是函数

因为您使用的是jQuery,所以应该使用
$(this)
来访问元素

$(document).on('click', '.tt-link', function () {
  console.log($(this).data('link'));
  window.open('url', '_blank');
});

.

您可能需要将代码放在
$(function(){…}
(但也要使用
$(this)
而不是
事件中。target

$(function(){
    $('.tt-link').click(function(event){
        console.log($(this).data('link'));
        window.open('url', '_blank');
    });
});

你把代码放在哪里了?在实际链接之前还是之后?不起作用。处理程序根本没有被调用。是的。你看了我做的小提琴吗?它将
report.html?id=0
添加到控制台并打开一个新窗口。并确保你的代码也进入了@putvande建议的就绪函数。以防万一你正在添加lin加载页面后,我更新了我的答案,以允许。
$(function(){
    $('.tt-link').click(function(event){
        console.log($(this).data('link'));
        window.open('url', '_blank');
    });
});