自定义jQuery“弹出”不在IE8中显示

时间:2012-03-01 17:13:39

标签: jquery ruby-on-rails html5 internet-explorer-8

(网站很快上线,请尽快帮助!)

所以我创建了一个弹出窗口(不是一个真正的模态,而只是一个隐藏的div,用jQuery显示并在关闭时再次隐藏)。它在Safari,Firefox和Chrome以及IE9的最新版本中正确显示。但是在IE8中,就好像div甚至不存在。

这是jQuery:

    permalinkBehavior: function(){
$('a[name=permalink]').click(function(event) {
    $('.permalink_overlay').hide();
    $(this).next('.permalink_overlay').show();
    $(this).parent().find('input[type=text]').focus();
    $(this).parent().find('input[type=text]').select();
    return false;
    });
    $(".permalink-cancel").click(function() {
        $(this).parent('.permalink_overlay').hide();
        $(this).parent().find('input[type=text]').blur();
        });
    },

类.permalink_overlay是一个带有css display:none的div; (脚本在单击链接时负责显示和隐藏div)并且相对定位于包含

  • 的内部标记。我们正在使用通常的IE黑客攻击,包括HTML5Shiv,Selectivizr和条件引导。还确保父元素hasLayout和包含元素的位置:relative。

    需要解决这个问题,以便我们公开上映。任何建议或已知的解决方法都将非常感谢。

  • 1 个答案:

    答案 0 :(得分:0)

    试试这个

      
    <script type="text/javascript" language="javascript">
        $(function() {
            $('a[name=permalink]').click(function(event) {
                $('.permalink_overlay').hide();
                $(this).next('.permalink_overlay').show();
                $(this).parent().find('input[type=text]').focus();
                $(this).parent().find('input[type=text]').select();
                return false;
            });
            $(".permalink-cancel").click(function() {
                $(this).parent('.permalink_overlay').hide();
                $(this).parent().find('input[type=text]').blur();
            });
    
        });
    </script>
    
    <style type="text/css">
        .permalink_overlay
        {
            display: none;
        }
    </style>
    

    <div>
        <a href="#" name="permalink">overlay</a>
        <div class="permalink_overlay">
            <input type="text" value="name" /><a href="#" class="permalink-cancel">Cancel</a>
        </div>
    </div>