0

我正在 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:更奇怪的是,当我“标签”时 - 它有效?但使用“点击”它不是吗?

有任何想法吗?

4

3 回答 3

1

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

于 2009-08-02T17:35:00.743 回答
0

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

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

于 2009-08-02T18:26:34.177 回答
0

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

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

并展示

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

有时我还发现仅 display:none/block 对 Safari 来说是不够的,但这可以很好地解决它。

于 2016-02-26T03:28:46.347 回答