Safari中的jQuery .hide()?

时间:2009-08-02 17:06:27

标签: jquery safari hide show

我正在Chrome / Safari中测试一些jQuery,我似乎无法解决此错误。基本上,我在做:

jQuery(':radio', '.some_class')
            .change(function() {
                jQuery('.special_class').show();
            })
            .blur(function() {
                jQuery('.special_class').hide();
      });

我根本没有爱情?甚至尝试了

jQuery('.special_class').css('display','none');

那也是帮助 - “.some_class”显示正常,但不想消失?

修改:HTML代码为:

<div class="some_class">
    <label for="button"><input type="radio" name="style" id="button" value="button" />Button</label>
</div>

    <div class="special_class">Hello There!</div>

编辑2:甚至更奇怪的是,当我“标签”时 - 它有效吗?但使用“点击”它不是吗?

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

模糊事件并不意味着“取消选择”。这意味着“丢失键盘焦点”。您需要为更改事件处理程序添加一些额外的逻辑,以检测是否已选择或取消选择单选按钮。

答案 1 :(得分:0)

我认为“模糊”事件存在问题。看here

  

Safari和Chrome在所有情况下都不支持链接和/或表单字段上的这些事件。

答案 2 :(得分:0)

我一直在使用一些额外的css在我的一个网站上解决这个问题。隐藏元素时,请尝试此css(通过使用这些属性添加/删除额外的类,或使用jquery .css)

display:none; opacity:0; pointer-events:none;

并显示

display:block; opacity:1; pointer-events:auto;

有时我也会发现只显示:无/块对于Safari来说是不够的,但这很好地解决了它。