我是jQuery的新手,所以也许这是一个简单的问题,但到目前为止我还没有找到一个好的答案。也许我甚至找不到合适的关键词来搜索......
我有一个下拉登录表单。我在typo3中使用它。 问题是:loginform中的任何点击都会隐藏/切换drobdownbox。 这是脚本:
<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>
也许有人可以提供帮助? 提前致谢!
答案 0 :(得分:0)
使用类似的东西:
$('selector').mouseenter(function(){
//do something when mouse is over
}).mouseleave(function(){
//do something when mouse out
});
答案 1 :(得分:0)
: 当鼠标指针悬停在元素上并释放鼠标按钮时,mouseup事件将发送到元素。
我猜:你想在这里使用点击事件处理程序吗?!
button.click(function() {
box.slideToggle();
button.toggleClass('active');
});
在这里,你绑定了你的typo3网站上发生的所有鼠标事件。 包括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.target会告诉你上面哪个div被释放了。 你可能想检查一下这样的东西:
$(document).mouseup(function(login) {
if(login.target.id == "loginForm"){return false}
if(!($(login.target).parents('#loginButton').length > 0)) {
button.removeClass('active');
box.hide();
}
});
祝你好运!