【问题标题】:Jquery hide/show div on focus() and blur() not workingJquery在focus()和blur()上隐藏/显示div不起作用
【发布时间】:2015-02-26 03:28:23
【问题描述】:

当用户专注于某些领域时,我试图向他们显示帮助或其他信息。

为此,我在一组输入控件下方有一个隐藏的 div。在这些字段的焦点上我想显示所需的 div,当这些控件失去焦点时,我想再次隐藏它。

我的 jquery 看起来像这样(为简单起见,我删除了确定要显示哪个 div 的逻辑,并简单地硬编码了名称:

                $('.showDetail' ).focus(
                    function () {                            
                        $('#divRoofUpperDetail').show();
                    }
                );

                $('.showDetail').blur(
                    function () {
                        $('#divRoofUpperDetail').hide();
                    }
                );

我的隐藏 div 如下所示:

<div class="form-group" id="divUpperRoofDetail">
    <div class="col-sm-12 hidden-xs thumbnail">
        <img src="images/Assets/RoofDetail.jpg" alt="" />                                        
    </div>
</div>

我希望触发事件的控件具有 showDetail 类,如果我在 jquery 函数中放置警报,我会看到这些警报触发,但 div 不会隐藏和显示。

如果我将 $('#divRoofUpperDetail').hide() 或 .show() 放在 document.ready 中,它会达到我的预期。在焦点和模糊方面,它没有。

【问题讨论】:

  • divRoofUpperDetail != divUpperRoofDetail?这令人费解,因为您说它正在从 dom 就绪处理程序中工作
  • 谢谢 Arun,我才看到错字,实际数据来自数据库并填充自定义属性...
  • 那么你关于它在 dom ready stmt 中工作的说法是错误的?
  • 不,我的错字出现在从数据库进入自定义属性的数据中,为了简单起见,我将其删除 - 但实际上我生成了错误的名称。呃……

标签: jquery


【解决方案1】:

如果这实际上是您正在运行的代码,而不仅仅是一个错字,那么在我看来,问题在于您在 jQuery 代码中输入了错误的 div 名称。

您将 UpperRoof 切换为 RoofUpper。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-11
    相关资源
    最近更新 更多