【问题标题】:Firefox won't display my jquery added element, but Chrome willFirefox 不会显示我添加的 jquery 元素,但 Chrome 会
【发布时间】:2016-05-10 12:08:23
【问题描述】:

这是我的功能:

function addEventForm(jour){
    if(!$(".formEvent").length){
        jour.closest("tr").after("<form class='formEvent'><div class='curseur'></div></form>");
    }
    
    var percent = jour.offset().left-jour.closest("tr").offset().left+parseInt(jour.css("margin-left").replace("px", ""))+ parseInt(jour.css("padding-left").replace("px", ""))+parseInt(jour.css("border-left-width").replace("px", ""));
    $(".formEvent .curseur").css({"top" : "-15px" , "left": percent+"px"});
    $(".formEvent").show()
}

通过在 Chrome 上调用它,一切正常,但在 Firefox 中,添加了元素,但未显示。如何解决?

编辑

例如:https://jsfiddle.net/g45r4um2/1/

【问题讨论】:

  • 你能在jsfiddle.net为此准备一个小提琴吗?
  • 是的,我已经准备好了
  • 无关,但我只想提一下,在使用parseInt 时,您可能需要传入第二个参数:radix 以确保转换按预期进行(所以使用@987654326 @ 表示十进制数)。此外,只要传递给parseInt的字符串以数字开头,您就不必过滤掉它 - px 将被自动删除,因为它不是数字,所以不需要到str.replace

标签: javascript jquery css google-chrome firefox


【解决方案1】:

我修复了它: https://jsfiddle.net/g45r4um2/13/ 在 Firefox 中它不知道它必须放在哪里,所以你必须添加 tdtr 标签。事实上,如果您在代码中检查元素表单,它在 tbody > form 下,并且似乎 firefox 不喜欢单独在 tbody 下的元素。

jour.closest("tr").after("<tr><td><form class='formEvent'><div class='curseur'></div></form><td></tr>");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-21
    • 2012-01-23
    • 1970-01-01
    • 1970-01-01
    • 2019-04-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多