首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >现代化和ajax负载冲突

问现代化和ajax负载冲突
EN

Stack Overflow用户
提问于 2013-11-19 21:48:36
回答 5查看 1.6K关注 0票数 2

我有一个使用modernizr.js的页面和一个定制的ajax函数,它每隔x秒重新加载页面内容。这是触发函数的代码。

代码语言:javascript
复制
function reloadSlides() {
    jQuery.ajax({
        url: document.location.href,
        cache: true,
        success: function(html){
            jQuery('#main').html(html);
        }
    });
}

当我查看DOM检查器时,类开始在HTML标记中一次又一次地重复,如下所示:

html lang="de“class=”js非接触式class=动画“js非接触class=动画csstransitions”style=“

为什么会这样呢?我怎么才能避免这种情况?

谢谢你找我!

EN

回答 5

Stack Overflow用户

发布于 2013-12-10 20:13:27

在我看来,您似乎是在重新加载元素中的整个页面,该元素的id为main。

代码语言:javascript
复制
jQuery('#main').html(html);

这将获取所有重新加载的html,并将其填充到所选元素中。尝试只重新加载main内部的内容,而不是所有的内容。

票数 1
EN

Stack Overflow用户

发布于 2013-12-10 21:41:43

根据对这一问题的评论:

使用jQuery.load字体,您可以请求完整的页面并为特定元素添加一个选择器:

代码语言:javascript
复制
$('#main').load(url + ' #main', function() { /* something... */});

它将自动将从请求接收的内容放在#main元素中。有关更多细节,请参见文档:http://api.jquery.com/load/

票数 1
EN

Stack Overflow用户

发布于 2013-12-10 20:01:55

这些类是如何添加的?

这些类是通过您使用的javascript动态添加的。

也发生在我身上

我也使用了一些javascripts,这会导致一些类被注入到DOM中,或者准确地说是在html标记中。这是因为每次加载javascript时,都会执行js,并根据屏幕、页面和其他一些因素添加类。

布局文件中的JS

您可能在布局文件中附加了js。因此,每次向页面发送ajax请求时,js文件都会被执行并再次添加类。因为它是根据您正在使用的输出或输入设备来更新类的;添加这个类是因为您没有附加任何触摸输入,如果您有(触摸屏液晶显示),那么该类将有其他内容。

JS文件的使用及补救措施

这完全取决于JS的使用方式。

我自己使用js,它们将类添加到我的html标记中,它们需要在以后使用它们时添加这些类。但同时,每次加载页面时,我都会删除布局,这样js就不会再次被执行。

这将防止这种情况一再发生。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20082804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档