2012-02-08 165 views
5

每个人都知道如何通过$ .load加载Ajax请求来解决css问题?例如,如果我想从一个网页加载只是一个DIV,用我的Ajax请求后:jquery ajax加载后丢失css加载

$('container').load('path_to_div #div_id'); 

我失去与该div

任何想法请

相关联的所有CSS和脚本
+0

通过相关的,你的意思是“内部”的DIV(内声明的),或者您遇到这里的款式没有更多的应用和JavaScript事件是一个问题未绑定? – FMaz008 2012-02-08 14:32:59

+0

样式和javascript不再适用 – user765368 2012-02-08 14:33:28

+0

这可能是因为应用于另一个样式的样式不再与新元素相匹配。所以他们被忽视了。 – 2012-02-08 14:34:19

回答

0

您可以像在this answer中那样动态加载CSS,或者将它们添加到要加载div的页面的CSS文件中。

至于外部脚本,$.getScript()应该照顾你的问题。

1

是的,所有附加的事件处理程序将在AJAX取代内容时断开连接。您可以使用jQuery的.on().live()作为替代事件挂钩来防止这种情况。

至于CSS,您可能在替换的内容上缺少原始内容的类名或ID,或者替换的内容与您在CSS中设置的相同选择器不匹配。

没有看到您的HTML/CSS,这是不可能告诉。

1

将元素(及其子元素)的所有CSS包含在主要页面中包含的CSS文件中,该文件将被加载到该文件中。因此,如果您有main.html,并且您正在将#div_id div加载到该页面中,则您需要在main.html的范围内包含#div_id的CSS。

您还需要包含一个脚本,可以将事件处理程序(如.delegate()(适用于1.7之前的jQuery版本)或.on()(适用于jQuery 1.7+))委托给加载了AJAX的内容。

1

我有这样的错误的解决办法是:

$('#contentPagina').load(nombrePagina,function(){ $('#contentPagina').trigger('create'); });

+0

我一直在寻找这一个小时now.Thank你! – 2014-01-06 21:53:17