将变量传递给window.location href

时间:2013-02-13 09:35:49

标签: jquery redirect settimeout window.location

我试图在点击时延迟外发链接,以便googles事件跟踪有时间发生。

我编写了以下代码,但我不确定如何将我的变量传递给window.location。它只是将其添加为字符串“url”而不是链接地址。我做错了什么?

$("a.private-product-order-button").click(function(e) {
   e.preventDefault();
   _gaq.push(['_trackEvent', 'Order buttons', 'Click', 'Service']);
   var url = $(this).attr("href");
   setTimeout(function() {
      $(window.location).attr('href', 'url');
      }, 200);
});

3 个答案:

答案 0 :(得分:3)

不需要使用jQuery来设置location对象的属性(并且不需要使用jQuery来获取锚对象的href属性):

$("a.private-product-order-button").click(function(e) {
    e.preventDefault();
    _gaq.push(['_trackEvent', 'Order buttons', 'Click', 'Service']);

    var url = this.href;
    setTimeout(function() {
        window.location.href = url;
    }, 200);
});

答案 1 :(得分:1)

因为你毕竟是在添加字符串。

应该是:

$(window.location).attr('href', url);

$(window.location).attr('href', 'url');

答案 2 :(得分:1)

在网址周围使用不带引号的$(window.location).attr('href', url);