首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用jquery模糊调用函数,除非单击链接?

如何使用jquery模糊调用函数,除非单击链接?
EN

Stack Overflow用户
提问于 2010-10-29 23:07:13
回答 3查看 1.6K关注 0票数 1

我有一个小的jquery脚本:

代码语言:javascript
运行
复制
$('.field').blur(function() {
    $(this).next().children().hide();
});

隐藏的子项包含一些链接。这使得无法单击链接(因为它们被隐藏)。对此有什么合适的解决方案?

这是我得到的最接近的结果:

代码语言:javascript
运行
复制
$('.field').blur(function() {
       $('*').not('.adress').click(function(e) {
            foo = $(this).data('events').click;
            if(foo.length <= 1) {
//             $(this).next('.spacer').children().removeClass("visible");
            }
            $(this).unbind(e);
        });
});

未注释的行应该引用模糊的字段,但它似乎不起作用。有什么建议吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-10-29 23:16:27

您可以稍微延迟一下,如下所示:

代码语言:javascript
运行
复制
$('.field').blur(function() {
  var kids = $(this).next().children();
  setTimeout(function() { kids.hide(); }, 10);
});

这让你有时间在那些子链接消失之前点击。

票数 1
EN

Stack Overflow用户

发布于 2010-11-20 22:38:10

这就是我最终怎么做的:

代码语言:javascript
运行
复制
var curFocus;
    $(document).delegate('*','mousedown', function(){
        if ((this != curFocus) && // don't bother if this was the previous active element                
            ($(curFocus).is('.field')) && // if it was a .field that was blurred
            !($(this).is('.adress'))
        ) {
            $('.' + $(curFocus).attr("id")).removeClass("visible"); // take action based on the blurred element
        }

        curFocus = this; // log the newly focussed element for the next event
    });
票数 0
EN

Stack Overflow用户

发布于 2010-10-31 07:00:44

我相信你可以在这种情况下使用.not('a'):

代码语言:javascript
运行
复制
$('.field').not('a').blur(function() {
    $(this).next().children().hide();
});

这没有经过测试,所以我不确定这是否会起作用。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4053123

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档