我有一个表单,其中包含信息的div是输入字段的兄弟。
我希望专注于给定的输入字段以仅显示其兄弟,所以我使用.prevAll并且:首先选择正确的div来删除类"隐藏"从。这适用于chrome(各种),IE 11和firefox(各种),但不适用于IE10(不幸的是,它是我用户最常用的浏览器)。
HTML:
<div class="container-module">
<div class="text-module-number">1.1 </div>
<div class="text-module-text">Total population</div>
<div class="prior-data hidden">
<p>Data for 2013:</p>
<span class="cpready">30,551,674</span>
<div class="right-arrow"></div>
<div class="useit">Use this data</div>
</div>
<input class="capture-input" id="q_1233" type="" value="" name="1233" placeholder="Enter a number">
</div>
CSS
.hidden{
display: none;
width: 0;
height: 0;
}
.prior-data {
position: absolute;
right: 328px;
padding: 8px;
top: 5px;
z-index: 2;
border: 2px solid #1892c1;
background-color: white;
}
jquery的
$("input").focus(function(){
$(".prior-data").addClass("hidden");
$( event.target ).prevAll("div.prior-data:first").removeClass( "hidden" );
});
隐藏的初始addClass就是这样,以前显示的这类div的例子隐藏在一个新的字段上,然后任何给定字段的兄弟都会得到它的兄弟姐妹。这样一次只能显示一个
编辑:其他信息:IE中的控制台没有给我任何错误或警告。
编辑:测试以下内容
$("input").focus(function(){
alert("focus detected");
$(".prior-data").addClass("test");
$( event.target ).prevAll("div.prior-data:first").removeClass( "hidden" );
});
按预期成功警告字段焦点,并成功添加测试类。因此,DOM导航失败了。
答案 0 :(得分:1)
我发现了这个问题。
有必要在函数的参数中定义事件。我不确定为什么在IE10中会出现这种情况,但不是其他任何情况,但它已经解决了这个问题。
工作代码如下:
$("input").focus(function(event){
$(".prior-data").addClass("hidden");
$( event.target ).prevAll("div.prior-data:first").removeClass( "hidden" );
});