用于href的锚的CSS选择器不以'#'结尾

时间:2016-07-06 20:30:42

标签: javascript jquery html css

我想在页面加载时显示加载图标。

我正在使用HTML,CSS和JS代码。

HTML:

<div class="loader-icon"></div>

JS:

$(window).load(function() {
    $(".loader-icon").fadeOut("slow");
});

$('a').click(function(){
    $(".loader-icon").fadeIn("slow");
})

和一些CSS显示div.loader-icon的加载图标。

如果我点击任何重定向到另一个页面的链接,它工作正常。但是当链接没有重定向到另一个页面时它不起作用。就像我点击“返回顶部”图标一样,加载图标会一直显示。它不淡出。

假设:

<a href="http://example.com/page/">Page Now</a>
<a href="http://example.com/page/#">Back to Top</a>
<a href="http://example.com/page2/">Page Other</a>

它适用于'Page Other',但不适用于'Back to Top'。

所以我想为hrefs不以'#'结尾的锚点选择一个选择器。或者是否有更好的方法使用不同的简单技巧来做同样的事情?

3 个答案:

答案 0 :(得分:4)

您是否需要担心其他网址,包括#?如果没有,您可以在此选择器上进行绑定:

a:not([href*='#'])

这只会定位URL中不包含#的链接。你也可以用这个

a:not([href^='#'])

定位任何不以#开头的链接和

a:not([href$='#'])

对于任何不以#结尾的链接。希望其中一个有帮助!

答案 1 :(得分:1)

您可以将ends with selectorOption Explicit Sub CloseAll() Dim wb1 As Workbook Dim wb2 As Workbook Dim wb3 As Workbook Dim wb4 As Workbook Dim wb5 As Workbook Set wb1 = Workbooks("wb1.xlsm") Set wb2 = Workbooks("wb2.xlsm") Set wb3 = Workbooks("wb3.xlsm") Set wb4 = Workbooks("wb4.xlsm") Set wb5 = Workbooks("wb5.xlsm") wb1.Close wb2.Close wb3.Close wb4.Close wb5.Close

一起使用

&#13;
&#13;
not()
&#13;
 $('a').not('[href$="#"]').on("click", function(e) {
   $(this).toggleClass("active");
   e.preventDefault();
 });
&#13;
.active{ background-color: lime; }
&#13;
&#13;
&#13;

可以使用:not() selector,但引用jQuery的建议:

  

.not()方法最终会为您提供比将复杂选择器或变量推送到:not()选择器过滤器更可读的选择。在大多数情况下,这是一个更好的选择。

答案 2 :(得分:-2)

它不起作用,因为您在窗口加载时添加事件,这意味着如果您希望图标淡出,则需要刷新页面。

当您点击返回顶部链接时也添加该事件。

<a href="http://example.com/page/#" onclick="myFunct();">Back to Top</a>

...
function myFunct(){
$(".loader-icon").fadeOut("slow");
}