Javascript - 页面完成初始化后应用CSS

时间:2011-09-07 18:23:12

标签: javascript jquery css html5 jquery-mobile

所以我正在使用Jquery Mobile设置的输入动态构建表单,并且想知道是否有办法触发与Jquery无关的刷新。基本上,我使用第三方插件作为日期选择器,当页面加载时,它没有获得适当的样式。有谁知道刷新表单的单个输入的方法?

我不想重新加载整个页面,只需刷新表单即可将第三方样式应用于单个输入。很抱歉,如果这是一个noob问题,我刚开始使用JS和HTML5。有没有人有任何建议?


更新: 所以我正在构建并插入到表单中的HTML字符串如下所示:

<input id="date-example" type="date" data-options="{'mode':'calbox'}" data-role="datebox" name="date-example">

如果我将它添加到页面HTML中,这是完美的,但是当我将其动态添加到表单中时则不行。字符串是相同的,我只能假设它不会刷新CSS样式。

2 个答案:

答案 0 :(得分:2)

因此,使用jQuery mobile的规则是你需要学习很多常见的练习。 JQM通过AJAX下载目标页面导航到下一页,然后将其HTML加载到DIV中,并将DIV设置为当前DOM的动画。

其中一个(众多)副作用是需要仔细规划媒体资产,CSS,JS等等。这个第三方datepicker小部件的CSS可能在导航到的文档的<head>中? <{1}}中的内容并不总是被加载。

我通过将某些内容移动到<head>标记来解决这个问题,但这是一种hacky解决方案。更好的方法是使用单个,缩小和压缩的CSS文件来提供所需的一切,包括datepicker的CSS。

答案 1 :(得分:0)

应用于日期选择器的CSS可能是内联声明的,或者优先于您声明的内容。

如果这是优先问题,请查看http://www.vanseodesign.com/css/css-specificity-inheritance-cascaade/

如果这是内联问题,只需在代码中添加一些覆盖这些值的内容即可。例如:

$(document).ready(function() {
    $('.datepicker').css('color', 'blue');
});

您无需“刷新”该页面。使用上面的代码,当所有元素都已加载时,将应用内联样式。您可以在AJAX回调中执行相同的操作,而不是$(document).ready()