jQuery:如何检查<select>?</select>的焦点

时间:2012-05-15 13:35:05

标签: jquery focus

当用户专注于<form><select>内部时,尝试保持元素可见。

http://jsfiddle.net/9v5ux/

这似乎不起作用:

$('#toolbar form').not(':focus')

请帮忙。感谢。

3 个答案:

答案 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);
        }
    }
);