4

我正在<a>用 jquery 管理一个 's 元素显示。基于一些按键事件,它附加或删除一个与提到的具有兄弟关系<input>的类(负责管理) 。display<a>

问题是,我有一个使用 CSS 的选择器+。并且由于某种原因,在 Chrome 中(我不确定其他浏览器,因为我没有测试过),当兄弟有类时它不会display:block是元素。<a><a>

HTML

<div class="cont">
    <input class="myInput"/>
    <label>S</label>
    <a>X</a>
</div>

CSS

.cont {
    position: relative;
}
a {
    position: absolute;    
    left: 117px;
    top: 3px;
    display: none;
}
label {
    position: absolute;
    left: 140px;
    top: 3px;
}
.has_typed + label + a {
    display: block;
}

脚本

$("input").on('keyup', function(){
    var thiss = $(this);
    if (thiss.val() != 0 && !(thiss.hasClass('has_typed'))) {
        thiss.addClass('has_typed');
    }
    else if (thiss.val() == 0) {
        thiss.removeClass('has_typed');
    }
});

在这里小提琴:http: //jsfiddle.net/aF4qt/1/

4

2 回答 2

4

改变:

.has_typed + label + a { ... }

到:

.has_typed ~ label + a { ... }

http://jsfiddle.net/JamesD/aF4qt/7/

于 2013-05-23T11:54:42.953 回答
1

如果您在 jQuery 中做所有事情,那么为什么不使用 jQuery 本身来做其余的事情。

试试这个:

$('.has_typed + label + a').show();

不知道为什么同样在css中不起作用

工作小提琴

如果您有多个组,这也将起作用。

检查这个小提琴

检查此链接以获取更多信息。

于 2013-05-23T12:15:27.723 回答