我有一个网站,我是多个联盟计划的用户。
如何跟踪访问者点击哪些横幅?
我的网站基本上有两种广告:
所以我有想法将我的网站的每个广告块放在具有给定类的DIV中,因此每次用户点击其中一个孩子时,我都可以请求确认我的数据库上的这个点击(注意这一部分在代码上并不明确)。但这不起作用。可能是由于错误的 jQuery选择器用法。
出于好奇:是否有任何插件用于此用途?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
<script language="javascript" type="text/javascript">
$(document).ready(function() {
$(".ad").children().live("click", function(event) {
var id = $(this).attr("id");
alert(id); //should alert ad-1 or ad-2
});
$(".ad-affiliate").children().live("click", function(event) {
var container = $(this).find(".affiliate-container");
var id = container.attr("id");
alert(id); //should alert affiliate-1
});
});
</script>
</head>
<body>
<div class="ad">
<a target="_blank" href="#">
<img id="ad-1" src="src1.png"/>
</a>
<a target="_blank" href="#">
<img id="ad-1" src="src1.png"/>
</a>
</div>
<div class="ad-affiliate">
<div id="affiliate-1" class="affiliate-container">
<!-- THIS CONTENT IS GIVEN BY THE CODE PROVIDED BY THE AFFILIATE PROGRAM -->
<!-- It is usually a div with a JavaScript code that populates the div with the content -->
</div>
</div>
</body>
</html>
答案 0 :(得分:1)
试试这个:
$(document).ready(function() {
$(".ad").on("click", "a", function(event) {
var id = $(this).find('img').attr("id");
alert(id); //should alert ad-1 or ad-2
});
$(".ad-affiliate").on("click", "a", function(event) {
var container = $(this).closest(".affiliate-container");
var id = container.attr("id");
alert(id); //should alert affiliate-1
});
});
答案 1 :(得分:0)
第一个.ad
点击功能需要获取img标记的ID,而不是链接本身。
$(".ad").children().live("click", function(event) {
var id = $(this).children('img').attr("id");
alert(id); //should alert ad-1 or ad-2
});
对于会员链接,它实际上取决于他们的Javascript生成的代码,因为您将click事件附加到具有类affiliate-container
的整个div,但是用户将单击任何{{1这个div里面的链接。
所以你可能会使用这样的东西:
a
请记住,jQuery $(".ad-affiliate a").live("click", function(event) {
var container = $(this).closest(".affiliate-container");
var id = container.attr("id");
alert(id); //should alert affiliate-1
});
选择器不会选择容器中的所有元素,而只会选择树中的第一个元素。
答案 2 :(得分:0)
单击链接时,根据浏览器的不同,您通常会立即获得链接的目标,并且您的事件监听器中的javascript不会被激活。
这意味着您需要某种“代理”或“中间人”来检测元素上的点击(并完成所有脏工作,即将使用数据发送到服务器),然后触发点击用户被重定向到广告的目标。
加载页面时,只需为每个广告生成一个隐藏链接,该链接可获取广告中的原始广告素材和唯一ID。 当有人点击广告时,请使用preventDefault();在广告点击事件上,触发带有匹配ID的隐藏链接,以便用户访问他想要的网站。