如果href具有有效的URL,则显示.load-overlay

时间:2016-05-22 20:44:51

标签: javascript jquery html

我想在点击链接时向用户显示加载屏幕。因此,当他们点击a href宽度有效网址时,.load-overlay会显示。

    $('a,input[type=submit]').click(function(){
        var bad = this.href.lastIndexOf('#') >= 0 || this.href.indexOf('javascript') >= 0;
        if(bad) {
            return false;
        } else {
            if ($("a").hasClass("noload")) {
                return false;
            } else {
                $(".load-overlay").show();
            });
            return true;
        }
        return false;
    });

但我网站上的某些网址target="_blank"a href个属性,因此会打开一个新窗口。然而,在网站上它将显示加载覆盖,这是一件坏事,因为页面没有加载。

正如您在代码中看到的,我添加了几行:

    $('a,input[type=submit]').click(function(){
        var bad = this.href.lastIndexOf('#') >= 0 || this.href.indexOf('javascript') >= 0;
        if(bad) {
            return false;
        } else {
            if ($("a").hasClass("noload")) {// if the a href has the class .noload, do not display the loading overlay
                return false;
            } else {
                $(".load-overlay").show();
            });
            return true;
        }
        return false;
    });

但这不起作用。有人有想法解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

将此代码替换为您的代码以解决问题:

$('a,input[type=submit]').not('[target=_blank], .noload').click(function(){
  var bad = this.href.lastIndexOf('#') >= 0 || this.href.indexOf('javascript') >= 0;
  if(!bad) {
    $(".load-overlay").show();
    return true;
  }
  return false;
});