【问题标题】:jQuery remove issue with IE6jQuery 删除 IE6 的问题
【发布时间】:2010-08-12 21:22:36
【问题描述】:

我知道,我知道,IE6 是魔鬼,但我别无选择,只能在这个项目上使用它。当我尝试删除父 div 时,它适用于除 IE 之外的所有浏览器(尚未在其他版本中检查)。 知道为什么吗? - 刚刚添加了一些 html

$('a#remove-product'+i).click(function(event){
    $(this).parent('.product').remove();
    i--;
});




    <div class="product" id="product1">
        <h2>Product 1</h2>
        <div class="info-line">
        <label>Division</label>
        <p><select id="selection-1">
          <option value="">- Select a Division -</option>
          <option value="abrasives">Abrasives</option>
          <option value="tapes">Bonding, Surface Protection &amp; Tapes</option>
          <option value="packaging">Packaging</option>
        </select></p>
        <a id="remove-product1" href="#add-product" class="remove">Remove Product</a></div>
    </div>

【问题讨论】:

  • 可能有破解之法。粘贴将运行的 HTML 的 sn-p,我们来看看。
  • 它在上面。问题是,当在此下方添加另一个产品时,它就会变成关闭 .product 不是吗?

标签: jquery internet-explorer-6


【解决方案1】:

您何时运行此代码? IE 不应该对此有任何特殊问题,除非它不在 document.ready 中,在这种情况下,您需要像这样包装它:

$(function() {
  $('a#remove-product'+i).click(function(event){
    $(this).parent('.product').remove();
    i--;
  });
});

或者,如果 IE 认为它不是父级,您可能需要 .closest() 而不是 .parent() 这里。

在任何一种情况下,粘贴 HTML 都会更有帮助,但这些都是与 IE 相关的非常常见的问题,并且没有做一些标准的事情,即使跨 IE 版本也是如此。

【讨论】:

  • 嗯,你说得对。它被包裹了,所以这不是问题。我尝试了 .closest() 并且它再次在大多数浏览器中工作,但是当周围有多个 .product 实例时,它会尝试删除其中两个。很奇怪。
  • 我同意 .closest()。 IE6 可能代表它的 dom 结构略有不同,最接近的()会走那棵树
  • @Carson - 使用.closest() 它试图删除其中两个?你能在那种情况下发布 HTML 吗? .closest() 找到一个元素,听起来好像是在找到一个未关闭的父元素或其他东西......您可以在此处检查有效的 HTML:validator.w3.org
  • @Nick - 这一切都有效,我无法检查它,因为 div 是动态生成的。不过,用萤火虫浏览它看起来不错。
  • @Carson - 在你的例子中父级是&lt;div class="info-line"&gt; 而不是&lt;div class="product"&gt; 所以你确实需要.closest(),添加之后的结果是什么?您也可以将a.remove 用于选择器,而不是使用i,这将绑定到所有链接......这是想要的效果吗?
【解决方案2】:

值得一提的是,您可以通过使用 bind() 而不是 click() 来避免一些问题,例如:

$('.someElement').bind('click', function(){
  SomeFunction(); //or any code for that matter
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多