在悬停和外出时使用焦点

时间:2014-11-18 11:38:33

标签: jquery

我有一个按钮,我希望它在悬停时显示一个下拉列表,当foucout触发时再次隐藏下拉列表。但它不起作用。 "关闭"即使我不希望它在触发焦点之前执行此操作,也会触发悬停效果。我怎么能这样做?

$("#projectStatus").hover(function () {

    $("#projectStatusDrp").show();
});

$("#projectStatus").focusout(function () {
    $("#projectStatusDrp").hide();
});

//编辑

这就是我想要的,但它也不起作用。

$("#projectStatus").hover(
    function() {
        $("#projectStatusDrp").show();
    }.blur(function() {
        $("#projectStatusDrp").hide();
    });

4 个答案:

答案 0 :(得分:2)

使用此:

      $("#projectStatus").mouseover(function(){

                $("#projectStatusDrp").show();
        );

      $("#projectStatus").blur(function() {
                $("#projectStatusDrp").hide();
        });

另外:

      $(document).click(function() {
                $("#projectStatusDrp").hide();
        });

答案 1 :(得分:0)

这应该做,我希望

$("#projectStatus").hover(
    function(){
        $("#projectStatusDrp").show();
    ),        
    function() {
        $("#projectStatusDrp").hide();
    }
);

查看jQuery hover功能了解更多信息。

答案 2 :(得分:0)

在描述代码时要做的就是这样:

  $("#projectStatus").hover(function() {
     $("#projectStatusDrp").show();
 }).blur(function() {
     $("#projectStatusDrp").hide();
 });

DEMO

但是悬停不会对元素进行聚焦,因此除非用户选中元素,否则模糊将永远不会触发。

你可以明确地将元素集中在悬停上,如下所示:

 $("#projectStatus").hover(function() {
         $(this).focus();
         $("#projectStatusDrp").show();
     }).blur(function() {
         $("#projectStatusDrp").hide();
 })

DEMO

答案 3 :(得分:0)

我认为你可以使用jQuery中的hover函数:

$("#projectStatus").hover(
function () {    
    $("#projectStatusDrp").show();
}, 
function () {
    $("#projectStatusDrp").hide();
});

hover函数接受两个函数作为参数,一个用于悬停时和悬停时。 jQuery提供了它的优秀文档here