我正在尝试设置一些代码来跟踪除主要社交媒体网站之外的所有外部链接(它们已经在那里进行了跟踪)
这是我的代码
jQuery('a[href^="http://"]:not([href*="' + window.location.host + '"]:not[href*="plus.google.com"]:not[href*="twitter.com"]:not[href*="facebook.com"])').click(function(event){
event.preventDefault();
console.log(['_trackEvent', 'External Link', 'Click', jQuery(this).attr('href')]);
try{
//_gaq.push(['_trackEvent', 'External Link', 'Click', jQuery(this).attr('href')]);
}catch(err){};
return false;
})
我想要使用多个:不选择器来阻止它与Facebook.com,twitter.com等匹配。
但是我的Facebook链接仍在触发这一点。我有什么不妥的想法。
答案 0 :(得分:1)
您未正确插入每个:not()
选择器之间的括号。
它应该是这样的:
jQuery('a[href^="http://"]:not([href*="' + window.location.host + '"]):not([href*="plus.google.com"]):not([href*="twitter.com"]):not([href*="facebook.com"])')
或者,根据voithos的评论,将您的属性选择器放在.not()
调用中,这样看起来会更清晰IMO:
jQuery('a[href^="http://"]').not('[href*="' + window.location.host + '"], [href*="plus.google.com"], [href*="twitter.com"], [href*="facebook.com"]')