功能完成后,重定向到URL

时间:2012-01-24 20:35:13

标签: javascript jquery

我有一些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之前我才会被发送,否则会过早地切断跟踪响应。

1 个答案:

答案 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;
    });    
}