我的页面之间有一个加载器。 单击任何链接时脚本都有效。 但我不希望在EMAIL LINK(mailto)中执行此操作。 如何避免为邮件链接执行此脚本?
var speed = 'speed';
$(window).load(function() {
$(".loader").fadeOut(speed, function() {
$('a[href], button[href]').click(function(event) {
var url = $(this).attr('href');
if (url.indexOf('#') == 0 || url.indexOf('javascript:') == 0) return;
event.preventDefault();
$(".loader").fadeIn(speed, function() {
window.location = url;
});
});
});
});
答案 0 :(得分:3)
使用:not()
选择器和[name^="value"]
(属性启动)选择器。
$('a[href], button[href], a:not([href^=mailto])').click(function(event) {
...
});
答案 1 :(得分:1)
您可以使用:not
选择器或not()
方法排除元素,但您必须在当前选择中执行此操作,如$('a[href]:not([href^="mailto:"])')
或$('a[href], button[href]').not('[href^="mailto:"]')
, Kristoffer发布的版本无法工作。
$(function() {
var speed = 'slow';
$(".loader").fadeOut(speed, function() {
$('a[href]:not([href^="mailto:"])').on('click', function(event) {
event.preventDefault();
var url = $(this).attr('href');
if (url.indexOf('#') !== 0 && url.indexOf('javascript:') !== 0) {
$(".loader").fadeIn(speed, function() {
window.location = url;
});
}
});
});
});