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');
});
});