我想在窗口上添加click事件,但要排除所有以https开头的链接。 我尝试了一些东西,但我不知道要走向哪个方向。例如
$(window).not("a[href^='https']").click(function(){
console.log('Clicked');
});
或
$(window).click(function(evt){
//somehow check click argument to inspect outgoing URL maybe?
});
答案 0 :(得分:6)
尝试这样的事情:
$(window).on('click', 'a', function(evt){
if(this.href.indexOf('https') == 0)
return;
//other logic here
});
使用on
方法将事件附加到窗口,但只有在与a
选择器匹配的元素上执行时才会触发。然后我检查元素href
属性以查看它是否以https开头,如果是,我会提前退出。
答案 1 :(得分:3)
您可以使用e.stopPropagation()
,因为您在点击链接时阻止了父点击事件
$(window).click(function(){
console.log('Clicked');
})
$("a[href^='https']").click(function(e){
e.stopPropagation();
console.log('This was a link');
})
答案 2 :(得分:1)
你可以使用window.location.protocol:
$(window).click(function(evt){
if (window.location.protocol != "https:"){
alert("clicked but not https");
}
else{
alert("clicked and yes https");
}
});
jsfiddle here:http://jsfiddle.net/fn4Lk263/