【问题标题】:Remove an element from Jquery从 Jquery 中删除一个元素
【发布时间】:2014-10-22 18:28:22
【问题描述】:

我的页面之间有一个加载器。 当您单击任何链接时,该脚本将起作用。 但我不希望在 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;
            });
        });
    });
}); 

【问题讨论】:

  • 按钮真的没有href 属性吗?您应该向我们展示“电子邮件链接”的样子!
  • || url.indexOf('mailto:') == 0 添加到您现有的例外列表(第 7 行)不起作用?

标签: jquery css mailto


【解决方案1】:

使用:not() 选择器和[name^="value"](属性开始于)选择器。

$('a[href], button[href], a:not([href^=mailto])').click(function(event) {
    ...
});

【讨论】:

    【解决方案2】:

    您可以使用: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;
                    });
                }
    
            });
        });
    }); 
    

    【讨论】:

      猜你喜欢
      • 2018-01-17
      • 1970-01-01
      • 1970-01-01
      • 2015-10-13
      • 2020-10-03
      • 2020-10-05
      • 1970-01-01
      • 1970-01-01
      • 2012-06-19
      相关资源
      最近更新 更多