Javascript jquery.click()仅在单击两次时有效
我有一个带有class left sidebar nav link的锚定标记,单击它时应该检查href是否与url匹配,如果匹配,应该用粗体显示,但它只在单击两次时有效,而不是一次Javascript jquery.click()仅在单击两次时有效,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有一个带有class left sidebar nav link的锚定标记,单击它时应该检查href是否与url匹配,如果匹配,应该用粗体显示,但它只在单击两次时有效,而不是一次 <a class="left-sidebar-nav-link" href="#anchor"> SubMenu1</a> $(document).ready(function() { $(".left-sidebar-nav-link").on("click", function
<a class="left-sidebar-nav-link" href="#anchor"> SubMenu1</a>
$(document).ready(function() {
$(".left-sidebar-nav-link").on("click", function() {
var href1 = $(this).attr("href");
if (window.location.href.indexOf(href1) >= 0) {
$(this).css('font-weight', 'bold');
}
});
});
$(文档).ready(函数(){
$(“.left sidebar nav link”)。打开(“单击”,函数(){
var href1=$(this.attr(“href”);
if(window.location.href.indexOf(href1)>=0){
$(this.css('font-weight','bold');
}
});
});
因为存在href
通过使用事件来防止默认行为。preventDefault
$(document).ready(function() {
$(".left-sidebar-nav-link").on("click", function(event) {
event.preventDefault();
alert('1')
var href1 = $(this).attr("href");
if (window.location.href.indexOf(href1) >= 0) {
$(this).css('font-weight', 'bold');
}
});
});
试试这个
$(文档).ready(函数(){
$(“.left sidebar nav link”)。在(“单击”,函数(){
var href1=$(this.attr(“href”);
window.location.href=href1;
if(window.location.href.indexOf(href1)>=0){
$(this.css('font-weight','bold');
}
});
});代码>
就逻辑而言,您的代码没有意义。您正在单击一个a标记,该标记会将URL更改为此标记的href
。因此,检查位置是否为href就像测试a标记是否有效
双击的发生是因为事件按以下顺序发生:
你的网址是
您可以单击a标记
单击“火灾处理程序”。检查URL是否包含标签的href(它不包含)
由于您没有使用event.preventDefault()
URL更改为
在下一次单击中,单击处理程序将成功
编辑:
更可靠的解决方案是有一个活动类,可以将其添加到单击的项目中
$('nav')。委托('.inactive','click',函数(事件){
var selectedTab=this.id.split('-')[1];
document.location.hash=selectedTab;
var$this=$(this);
美元这个
.removeClass('inactive')
.addClass(“主动”);
$this.sibbins()
.addClass(“非活动”)
.removeClass(“活动”);
});代码>
正文{
字体:arial;
}
导航{
利润率:50像素;
字号:2rem;
文本对齐:居中;
}
保险商实验室{
显示:内联块;
列表样式类型:无;
}
李{
高度:25px;
浮动:左;
右边距:0px;
填充:0 20px;
}
李阿{
文字装饰:无;
颜色:#878787;
文本转换:大写;
-webkit过渡:所有0.5s轻松;
-moz过渡:所有0.5s轻松;
-o型过渡:所有0.5s的轻松度;
-ms过渡:所有0.5s轻松;
过渡:所有0.5s缓解;
}
李娜:停下来{
颜色:#666;
}
主动的,主动的{
字体大小:粗体;
颜色:#373737;
}
* {
框大小:边框框;
}
选项卡1
选项卡2
选项卡3
选项卡4
最后!!,这对我来说很有效,我试图在散列更改时触发click事件
$(window).on('hashchange', function(e){
$(".left-sidebar-nav-link").on("click", function() {
window.location.href = $(this).attr("href");
var href1 = $(this).attr("href");
if (window.location.href.indexOf(href1) >= 0) {
$(this).css('font-weight', 'bold');
}
});
});
html代码?没有HTML和CSScode,我们无法帮助您更新HTML,没有csscan,您不能尝试数据-
属性,而不是href
为a
标记?地址栏在第一次单击时是否包含#锚定
?窗口。location.href
加载新页面,剩下的代码将如何执行?因为它是锚定链接,所以页面不会跳转
$(window).on('hashchange', function(e){
$(".left-sidebar-nav-link").on("click", function() {
window.location.href = $(this).attr("href");
var href1 = $(this).attr("href");
if (window.location.href.indexOf(href1) >= 0) {
$(this).css('font-weight', 'bold');
}
});
});