2015-05-06 29 views
0

我有一个表单,其中包含信息的div是输入字段的兄弟。jQuery的DOM树导航(.prevAll)删除同级中的类不工作在IE 10中

我想专注于给定的输入字段来显示它的兄弟姐妹,所以我使用.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

啊是的,我试过了,并没有工作,但我实际上只是第二次查获的问题。事件需要在IE10的初始函数的参数中定义。 – Gideon

+1

作为一个习惯问题(根据jQuery API规范),我总是声明'event'参数,我很习惯它,所以我完全忽略了你的代码。 – Tomalak

回答

1

我发现了这个问题。

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

工作代码读取:

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