Jquery 添加和删除类可以使用空白链接,但不能使用页面链接
我对jquery真的很在行,但我通过阅读Stackoverflow的有价值用户创建的旧帖子,几乎竭尽全力地解决了这个问题。Jquery 添加和删除类可以使用空白链接,但不能使用页面链接,jquery,Jquery,我对jquery真的很在行,但我通过阅读Stackoverflow的有价值用户创建的旧帖子,几乎竭尽全力地解决了这个问题。 我的问题是我试图添加类onclick事件。仅当我将超链接设置为空白(#)时,它才起作用,但如果我将超链接状态设置为时,请尝试单独使用以下命令,并删除$('ul#menu li a')。removeClass('active') 尝试单独使用以下命令,并删除$('ul#menu li a')。removeClass('active') 您应该只使用$(此)。切换('activ
我的问题是我试图添加类onclick事件。仅当我将超链接设置为空白(#)
时,它才起作用,但如果我将超链接状态设置为时,请尝试单独使用以下命令,并删除$('ul#menu li a')。removeClass('active')代码>
尝试单独使用以下命令,并删除$('ul#menu li a')。removeClass('active')代码>
您应该只使用$(此)。切换('active')
,您不需要上一条语句您应该只使用$(此)。切换('active')
,您不需要上一条语句这对我很有用
var url = window.location.href;
url = url.substr(url.lastIndexOf("/") + 1);
$("#menu").find("a[href='" + url + "']").addClass("active");
只需将脚本包含到每个页面中,它就会添加活动类来反映当前位置。不需要切换任何东西
我的猜测为什么你的代码不起作用:你点击一个链接,所有东西都可能起作用,除了链接指向另一个页面,你的jQuery函数被“重新加载”,没有任何东西不再被点击。如果您正试图实现单页网站,请参见示例:
这对我很有用
var url = window.location.href;
url = url.substr(url.lastIndexOf("/") + 1);
$("#menu").find("a[href='" + url + "']").addClass("active");
只需将脚本包含到每个页面中,它就会添加活动类来反映当前位置。不需要切换任何东西
我的猜测为什么你的代码不起作用:你点击一个链接,所有东西都可能起作用,除了链接指向另一个页面,你的jQuery函数被“重新加载”,没有任何东西不再被点击。如果您正试图实现单页网站,请参见示例:
您面临的问题是在加载example.com/product.php后,active类没有保留在相应的锚定标记中,因为加载时javascript不会将旧页面的状态转移到新页面。你可以用两种方法来做
您可以禁用页面加载并保持在同一页面中
$('ul#menu li a').click(function(e) {
e.preventDefault();//this will stop the current event which is your page load
$('ul#menu li a.active').removeClass('active');//this will remove the active class from only a tag having active as class
$(this).toggleClass('active');
});
页面加载后,找出您所在的页面,并为相应的a标记设置活动类
(function($){
//highlight the current tab
var l = window.location.pathname,
str = l.slice(l.lastIndexOf('/')+1,l.length);
$('ul#menu li a.active').removeClass('active');//remove active from home page link
$('#menu').find('a[href="'+str+'"]').addClass('active');
})(jQuery);
您所面临的问题是,在加载example.com/product.php之后,active类不会保留在相应的锚标记中,因为javascript在加载时不会将旧页面的状态转移到新页面。你可以用两种方法来做
您可以禁用页面加载并保持在同一页面中
$('ul#menu li a').click(function(e) {
e.preventDefault();//this will stop the current event which is your page load
$('ul#menu li a.active').removeClass('active');//this will remove the active class from only a tag having active as class
$(this).toggleClass('active');
});
页面加载后,找出您所在的页面,并为相应的a标记设置活动类
(function($){
//highlight the current tab
var l = window.location.pathname,
str = l.slice(l.lastIndexOf('/')+1,l.length);
$('ul#menu li a.active').removeClass('active');//remove active from home page link
$('#menu').find('a[href="'+str+'"]').addClass('active');
})(jQuery);
为什么首先要删除类而不是toggleclass??您需要在重定向页面中的特定链接处手动(静态)添加active
类,或者通过发送带有url的查询字符串并在重定向页面中获取它们(动态)我想删除设置为默认为home的活动类,并在单击链接时删除它,并将活动类添加到我单击的活动类中。@注册用户为什么首先删除类而不是toggleclass??您需要在重定向页面中的特定链接处手动(静态)添加活动类,或者通过发送带有url的查询字符串并在重定向页面中获取它们(动态)我想删除设置为默认为home的活动类,并在单击链接时删除它,并将活动类添加到我单击的活动类中。@注册用户我试过你的代码。并添加了类似于$('ul#menu li a')的内容;我甚至添加了警告(“地狱”);检查代码是否正常工作。。如果警报在函数内部,则不会弹出消息,但如果警报在函数外部,则会弹出消息。。我遗漏了什么:(请告诉
如代码所示..您的代码仅在空白链接上工作,而不与任何页面的超链接一起工作,就像我尝试了您的代码一样。并添加了类似$('ul#menu li a')。单击(function(){alert(“hell”)$(this)。切换类('active');});我甚至添加了警报(“hell”);检查代码是否工作。如果警报在函数内部,则不会弹出消息,但如果警报在函数外部,则会弹出消息。我缺少什么:(请告诉 如代码所示..您的代码仅在空白链接上工作,如omg,但不使用指向任何页面的超链接。非常感谢..:)第二个很好:)。非常感谢。非常感谢第二个很好用。非常感谢。非常感谢你的宝贵意见。我想我的英语有点差。希望你不觉得很难理解我的帖子。我要衷心感谢:)非常感谢你的宝贵意见。我想我的英语有点差。希望你不觉得很难理解我的帖子。我要衷心感谢:)