单击内部时隐藏jquery下拉列表
我是jQuery新手,所以这可能是一个简单的问题,但到目前为止我还没有找到一个好的答案。也许我还没有找到合适的关键字来搜索 我有一个下拉式登录表单。我在打字本3中使用它。 问题是:在loginform中的任何单击都会隐藏/切换drobdownbox。 以下是脚本:单击内部时隐藏jquery下拉列表,jquery,typo3,dropdownbox,Jquery,Typo3,Dropdownbox,我是jQuery新手,所以这可能是一个简单的问题,但到目前为止我还没有找到一个好的答案。也许我还没有找到合适的关键字来搜索 我有一个下拉式登录表单。我在打字本3中使用它。 问题是:在loginform中的任何单击都会隐藏/切换drobdownbox。 以下是脚本: <script type="text/javascript"> $(function() { var button = $('#loginButton');
<script type="text/javascript">
$(function() {
var button = $('#loginButton');
var box = $('#loginBox');
var form = $('#loginForm');
button.removeAttr('href');
button.mouseup(function(login) {
box.slideToggle();
button.toggleClass('active');
});
form.mouseup(function() {
return false;
});
$(document).mouseup(function(login) {
if(!($(login.target).parents('#loginButton').length > 0)) {
button.removeClass('active');
box.hide();
}
});
});
</script>
$(函数(){
var按钮=$(“#登录按钮”);
变量框=$(“#登录框”);
变量形式=$(“#loginForm”);
按钮。removeAttr('href');
按钮。鼠标(功能(登录){
box.slideToggle();
toggleClass('active');
});
form.mouseup(函数(){
返回false;
});
$(文档).mouseup(函数(登录){
if(!($(login.target).parents(“#login按钮”).length>0){
按钮。removeClass(“活动”);
box.hide();
}
});
});
也许有人能帮忙?
提前谢谢 使用类似的方法:
$('selector').mouseenter(function(){
//do something when mouse is over
}).mouseleave(function(){
//do something when mouse out
});
从jquery文档中:
当鼠标指针位于某个元素上并且松开鼠标按钮时,mouseup事件将发送到该元素
我猜:你想在这里使用点击事件处理程序吗
button.click(function() {
box.slideToggle();
button.toggleClass('active');
});
在这里,您将绑定到typo3站点上发生的所有mouseup事件。
包括那些在loginForm上面的!!所以它会在任何鼠标上隐藏你的形状
$(document).mouseup(function(login) {
if(!($(login.target).parents('#loginButton').length > 0)) {
button.removeClass('active');
box.hide();
}
});
你可能想试试这个:
$(document).bind("mouseup",function(e){
console.log(e.target)
})
e、 目标将告诉您鼠标在哪个div上被释放。
您可能需要检查以下内容:
$(document).mouseup(function(login) {
if(login.target.id == "loginForm"){return false}
if(!($(login.target).parents('#loginButton').length > 0)) {
button.removeClass('active');
box.hide();
}
});
祝你好运 你能提供一个JSFIDLE吗?嗨,答案很多,所以我对jquery很陌生。我尝试提供一个JSFIDLE(如果它错了,很抱歉,我是第一次!)忘记了链接:那些你在脚本中定义的
id
loginButton、loginBox和loginForm都没有找到。谢谢你的答案。我与extutton.removeClass一起使用('active');box.hide();它是有效的