【问题标题】:Why after create elements with jquery they'r not visible in Chrome为什么在使用 jquery 创建元素后它们在 Chrome 中不可见
【发布时间】:2012-01-20 05:02:57
【问题描述】:

我正在使用 jQuery 以一种简单的方式创建元素。

所以它应该在文档准备好后工作,它在 IE 上运行良好,但不适用于 Chrome、Firefox 或 Safari。 它们已创建,但不可见!

例如,在 chrome 中,当我在文档准备好后包含警报时,单击确定后,元素变得可见,或者当我打开“检查元素”时元素也变得可见。

有谁知道问题出在哪里?

var radio_span = $('<span></span>')
 .addClass('jqTransformRadioWrapper')
 .attr('id', spanRadio_id) (...etc)

【问题讨论】:

  • 请创建一个jsfiddle.net 演示来举例说明您的问题。单独的代码 sn-p 不足以解决或解决您的问题。例如,您发布的代码没有显示您如何将新元素添加到 DOM 树。如果不提供更多信息,就无法为您提供帮助。

标签: jquery dom google-chrome


【解决方案1】:
var radio_span = $('<span></span>')
 .addClass('jqTransformRadioWrapper')
 .attr('id', spanRadio_id) (...etc)

这样做是将您的元素放入 radio_span 变量中,要查看该元素,您必须以某种方式使用 append、prepend、html 或任何其他执行此操作的方法将其插入到文档中,如下所示:

radio_span.appendTo('body');

http://jsfiddle.net/adeneo/zKWxp/4/

我现在看到你写的元素在打开检查元素或添加警报时变得可见,这听起来很奇怪,你可能不得不按照 Felix 说的去做,添加更多代码!

【讨论】:

  • 感谢您的回答,但我当然会附加它,否则它在任何浏览器中都不起作用。正如我所说,它适用于所有浏览器,但在使用 chrome 等打开之后就不行了。无论如何我都会改变元素的顺序以及它是如何工作的......也许这是一种延迟......真的不知道。
【解决方案2】:

不应该是这样吗:

var radio_span = $('#spanid');
 radio_span.addClass('jqTransformRadioWrapper');

【讨论】:

  • 不,jQuery 允许方法链接。
【解决方案3】:

尝试将您的代码包装在:

$(function() { ... });

如果这不起作用,请尝试将其包装成:

$(window).load(function () { ...  });

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-29
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 2018-07-05
    • 2011-06-05
    • 1970-01-01
    相关资源
    最近更新 更多