如何在HTML div中使用JavaScript OnBlur()?
我有一个菜单,我可以打开和关闭菜单点击标签。它起作用了。 我还使用OnBlur()。实际上它也可以工作,但当我在菜单中单击一个div时,OnBlur处于活动状态,菜单关闭,div的onclick不工作。我如何解决这个问题 在JavaScript代码中如何在HTML div中使用JavaScript OnBlur()?,javascript,c#,jquery,html,asp.net,Javascript,C#,Jquery,Html,Asp.net,我有一个菜单,我可以打开和关闭菜单点击标签。它起作用了。 我还使用OnBlur()。实际上它也可以工作,但当我在菜单中单击一个div时,OnBlur处于活动状态,菜单关闭,div的onclick不工作。我如何解决这个问题 在JavaScript代码中 <script> function Acc_Show() { var q = document.getElementById("he-my"); q.style.display = ""; document.
<script>
function Acc_Show() {
var q = document.getElementById("he-my");
q.style.display = "";
document.getElementById("my-account-btn").focus();
document.getElementById("my-account-btn").setAttribute("onclick", "Acc_Hide()");
}
function Acc_Hide() {
var q = document.getElementById("he-my");
q.style.display = "none";
document.getElementById("my-account-btn").setAttribute("onclick", "Acc_Show()");
}
</script>
函数Acc_Show(){
var q=document.getElementById(“他是我的”);
q、 style.display=“”;
document.getElementById(“我的帐户btn”).focus();
document.getElementById(“我的帐户btn”).setAttribute(“onclick”、“Acc_Hide()”);
}
函数Acc_Hide(){
var q=document.getElementById(“他是我的”);
q、 style.display=“无”;
document.getElementById(“我的帐户btn”).setAttribute(“onclick”、“Acc_Show()”);
}
在HTML代码中
<a id="my-account-btn" href="javascript:;" onclick="Acc_Show()" onblur="Acc_Hide()">My Account</a>
我的菜单的形象
更新来自OP的附加代码:
<div class="he-myac" id="he-my" style="display:none;">
<div id="my-account-wrapper">
<div class="myaccount" onclick="GoAdress('test.aspx')">Test</div>
<br/>
<div class="myaccount" onclick="GoAdress('settings.aspx')" >Settings</div>
<br/>
<div class="myaccount" onclick="GoAdress('log_out.aspx')">Log Out</div>
</div>
测验
设置
注销
我感觉这一行q.style.display=“”问题是由Acc\u Show()
函数中的code>引起的。尝试将其替换为q.style.display=“block”代码>
当触发onblur
事件时,您的Acc\u Hide()
函数通过调用q.style.display=“none”来隐藏您的
代码>。然后,下一次单击my account btn
将触发Acc_Show()
函数,该函数将q.style.display设置为空字符串。这不会取消隐藏
块。您不需要使用JavaScript设置onclick属性,只需添加一个调用函数的单击事件处理程序即可。看看这个谢谢,但我的主要问题不是这个。关于onblur那么你的意思是,在调用函数Acc_Hide()
后(由onblur
事件触发),下次单击你的my account btn
按钮不会触发你的Acc_Show
函数?@BurakKaya这就是我发表评论而不是回答的原因。我试图帮助您编写易于理解的干净代码。你现在所拥有的真的是一团糟。Javascript函数名称应为小写:showcount
vsAcc\u Show
。您多次重新查询同一元素。。。浪费打字、性能和可读性。否。像这样想。我点击了我的账号btn,菜单打开了。然后我在菜单(内部)中单击了一个div(div有onclick事件)。但是div的onclick事件不起作用,因为当我单击div时,onblur触发器和菜单关闭。我想知道当我点击div时,div的onclick事件会起作用。@BurakKaya请发布你在评论中提到的其他相关代码,如div
。“测试
设置
注销”@BurakKaya所以你的意思是当你点击菜单中的myaccount
时,my account btn
的onblur
事件被触发?是的,完全正确。所以我只希望当我单击myaccount时,onblur不处于活动状态,并运行GoAddressJavaScript。@BurakKaya尝试删除document.getElementById(“我的帐户btn”).focus()代码>从您的Acc\u Show()
。