首先,避免on*
事件属性。如果你有 jQuery,用它来绑定你的事件。其次,看起来您创建img
元素的目的是发出 GET 请求来跟踪点击。相反,只需使用 jQuery 来触发请求。
<a href="http://target.tld" target="_blank" class="track-link" data-value="foo">Foo</a>
<a href="http://target.tld" target="_self" class="track-link" data-value="bar">Foo</a>
$('.track-link').click(function() {
var trackValue = $(this).data('value');
$.get('/stats.php', { my_param: trackValue });
});
更新
尝试使用该mousedown
事件来确保在页面传输之前发送请求:
$('.track-link').mousedown(function() {
var $link = $(this);
if (!$link.data('request-sent')) {
$.get(
'/stats.php',
{ my_param: $link.data('value') },
function() {
$link.data('request-sent', true);
}
);
}
});
更新#3
$('.track-link').click(function(e) {
e.preventDefault();
var $link = $(this);
$.get(
'/stats.php',
{ my_param: $link.data('value') },
function() {
window.location.assign($link.prop('href'));
}
);
});