我有一些HTML,这是一个不幸的继承onclick:
<a href="http:www.intendedlink.com" onclick="tracker(this, 'HondaAccord');return false;">Buy a Car</a>
我想要的是生成图像,点击div car
,然后转移到URL。如此:
function tracker(theLink, trackID) {
var trackUrl = "http://www.mysite.com?something=" + trackID + "&val1&val2;";
var img = $('<img>');
img.attr('src', trackUrl);
img.appendTo('div.car');
$(function () {=
$(this).on('click', function () {
var url = theLink;
if (url) {
window.location = theLink;
}
});
});
}
生成图像,但我从未发送过新链接。也许我甚至不需要绑定?但我想确保在图像被追加到car
之前我才会被发送,否则会过早地切断跟踪响应。
答案 0 :(得分:4)
theLink
是锚节点,而不是它的href。尝试
window.location = theLink.href;
并且,删除click方法,不需要。相反,您需要等到图像加载后再重定向,以确保发送请求。
function tracker(theLink, trackID) {
var trackUrl = "http://www.mysite.com?something=" + trackID + "&val1&val2;";
var img = $('<img>');
img.attr('src', trackUrl);
//img.appendTo('div.car'); not needed
img.load(function(){
window.location = theLink.href;
});
}