1

我有以下 jQuery:

$(document).ready(function() 
{ 
    $("#Button1").click(function () {
        $("#divCompany1").slideToggle("fast");
    });

    $("#Button1").focusout(function () {
        $("#divCompany1").slideUp("fast");
    });

    $("#divCompany1").focusout(function () {

        $("#divCompany1").slideUp("fast");

    });

});

以下是我想要发生的事情的描述:

  • 如果用户关注 Button1 但随后失去焦点,我希望 divCompany1 滑动
  • 如果用户关注 divCompany1 但随后失去焦点,我希望 divCompany1 仅向上滑动
  • 上述情况的例外是,如果 Button1 失去焦点但 divCompany1 同时获得焦点,我不想发生任何事情

这基本上允许用户在没有 divCompany1 滑动的情况下在 Button1 和 divCompany1 之间移动。

我已经搜索了一段时间,没有发现任何有用的东西,我认为可能需要一面旗帜或其他东西。

有任何想法吗?

4

2 回答 2

1

这个问题说如何检测元素是否有焦点:Using jQuery to test if an input has focus

那么你需要做的就是:

$("#Button1").focusout(function () {
    if (!$("#divCompany1").is(":focus")) {
        $("#divCompany1").slideUp("fast");
    }
});
于 2011-01-27T11:14:46.240 回答
0

好的,我似乎已经解决了它:

$("#Button1").click(function () {
        $("#divCompany1").slideToggle("fast");
        $("#<%=lstBoxCompany.ClientID%>").focus();
    });

    $("#divCompany1").focusout(function () {
        $("#divCompany1").slideUp("fast");
    });

而不是担心焦点,Button1我只是将焦点设置到我想要用户转到的元素上(divCompany1),只有在这个焦点消失后我才隐藏它。

按预期工作。

于 2011-01-27T12:15:34.950 回答