jQuery dom树导航(.prevall)从兄弟姐妹中删除在IE 10中不起作用



i有一个形式,其中包含信息的信息是输入字段的同级。

我希望专注于给定的输入字段以仅显示其同胞,因此请使用.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导航失败。

我找到了问题。

有必要在函数的参数中定义事件。我不确定为什么在IE10中是这种情况,但没有其他情况,但它已经解决了问题。

工作代码读取:

$("input").focus(function(event){
  $(".prior-data").addClass("hidden");
  $( event.target ).prevAll("div.prior-data:first").removeClass( "hidden" );
});

最新更新