为什么我的点击处理程序不起作用?

时间:2014-02-28 13:48:26

标签: javascript jquery html

我有这个链接

<a class="tt-link" data-link="report.html?id=0">Open</a>

我想在新标签中打开它,所以我在ready()

中附加了一个处理程序
 $('.tt-link').click(function(event){
        console.log(event.target.data('link'));
        window.open('url', '_blank');
    });

这不适用于我的选择器错误,但事实并非如此。无论如何都没有控制台输出。

2 个答案:

答案 0 :(得分:2)

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

  

event.target.data不是函数

由于您使用的是jQuery,因此您应该使用$(this)来访问该元素。

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

Fiddle

答案 1 :(得分:0)

您可能需要将代码放在$(function(){ ... }内(但也请使用$(this)代替event.target

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