Javascript jQuery/JS-如何排除<;a>;在特定条件下使用特定的href?
我试图根据它们的Javascript jQuery/JS-如何排除<;a>;在特定条件下使用特定的href?,javascript,jquery,preloader,Javascript,Jquery,Preloader,我试图根据它们的href值,将特定的排除在if语句中。更具体地说,我在单击任何时显示一个预加载程序div,除了触发javascript或包含的部分。 这使我的用户在等待页面加载时看到一个漂亮的屏幕 我写了一些小东西: $('a').click(function() { var href = $(this).attr('href'); //my conditions if ((href != '#') || (href != 'javascript:void(0);')) {
href
值,将特定的
排除在if语句中。更具体地说,我在单击任何
时显示一个预加载程序div,除了触发javascript
或包含
的部分。
这使我的用户在等待页面加载时看到一个漂亮的屏幕
我写了一些小东西:
$('a').click(function() {
var href = $(this).attr('href');
//my conditions
if ((href != '#') || (href != 'javascript:void(0);')) {
$('#preloader').fadeIn("fast");
}
});
//Showing preloader
$(window).load(function() {
$('#preloader').fadeOut("slow");
});
我的语句不包括包含#
的链接,但适用于带有javascript:void(0)的链接代码>,而不是。这是我的问题。
我做错了什么?语句或值中是否有错误?我可以想到两种立即解决给定代码问题的方法:
你的条件不正确if((href!='#')|(href!='javascript:void(0);)
应该是if(href!='#'&&href!='javascript:void(0);)
最好从查询本身中排除不相关的元素:
$('a')。不是('[href=“#”]”)。不是('[href=“javascript:void(0);”])。单击(函数(){
$(“#预加载程序”).fadeIn(“快速”);
});
请参阅jQuery。这个答案可能会对某人有所帮助。。还有另一种检查方法
if($(this).is(':not([href^="#"]):not([href^="javascript:"])')){
$('#preloader').fadeIn("fast");
}
$('a')。在('click')上,函数(e){
e、 预防默认值();
如果($(this).is(':not([href^=“#“]):not([href^=“javascript:”))){
警惕(“良好”);
}
});代码>
我不同意你的第一句话。它不应该是逻辑的,因为a href包含#
或javascript:void(0)代码>。如果它同时包含这两个元素,则表示有人做了不正确的事情。此外,OP还要求将其用于或。然而,你建议使用。而不是,这绝对是OP想要的!我尝试并发展了第二种方法。非常感谢您的帮助。@Seth,条件是否定的,因此&
是您想要的:其href
属性不是#
且不是javascript:void(0)代码>:您能为示例提供一些标记吗?乍一看,您的处理程序应该工作正常。也许你的主播有一个打字错误href@Seth谢谢你的回复,我已经修复了它,实现了下面的答案。祝你有美好的一天。