当用户专注于<form><select>
内部时,尝试保持元素可见。
这似乎不起作用:
$('#toolbar form').not(':focus')
请帮忙。感谢。
答案 0 :(得分:5)
.not()
返回一个过滤的jQuery对象,而不是布尔值。
你应该写if (!$(...).is(':focus'))
答案 1 :(得分:1)
此代码应该这样做。
$('#toolbar').hover(
function() {
var toolbarposition = $(this).position();
if (toolbarposition.top == -115) {
$(this).animate({top: '0'}, 300);
}
},
function() {
var toolbarposition = $(this).position();
if (toolbarposition.top == 0 && !$('#toolbar form select').is(':focus')) {
$(this).animate({top: '-115'}, 300);
}
}
);
答案 2 :(得分:0)
以下代码可以满足您的需求。但是,当元素被聚焦并且您在工具栏外部单击时需要修复情况,因此鼠标悬停处理程序不会触发。
$('#toolbar').hover(
function() {
var toolbarposition = $(this).position();
if (toolbarposition.top == -115) {
$(this).animate({top: '0'}, 300);
}
},
function() {
var toolbarposition = $(this).position();
if (toolbarposition.top == 0 && !$('#toolbar form').has(':focus').length) {
$(this).animate({top: '-115'}, 300);
}
}
);