在 IE 的 jQuery Ajax 成功函数中无法识别选择器

Posted

技术标签:

【中文标题】在 IE 的 jQuery Ajax 成功函数中无法识别选择器【英文标题】:Selector is not recognized with in jQuery Ajax success function in IE 【发布时间】:2013-01-02 15:28:46 【问题描述】:

我必须修复一个非常严重的模板问题:用于 Worpress 的 boosterius。 我需要对其进行优化并使其与 IE 一起使用…… 所以,我决定用ajax加载页面,因为有很多图片(首先,所有页面都加载在同一个页面中:/)。 一切都在 Firefox 中完美运行,但在 IE 中就不行了。

此时我的问题是,IE 不想识别某些 ajax 加载的元素。

var container = _.curr.find('.the-content');
var page = container.parents('li');
$.post(
url, 
    ajaxloaded: '1',
    pageloaded: _.curr.attr('id')
,

function (data) 
    var newcurr = $(data).find('#' + _.curr.attr('id'));
    var newcontainer = $(newcurr).find('.the-content');
    container.html(newcontainer.html());
    var scrollbar_new = container.find('.scrollbar1')[0];
    console.log('nScroll:' + $(container).find('.scrollbar1').length);
    if ($(data).find('.scrollbar1').length > 0) 
        $(data).find('.scrollbar1').each(function (i) 
            console.log('scrollid:' + $(this).attr('id'));
            $(this).tinyscrollbar(
                sizethumb: 134
            );
        );
    
);

IE 在$(this).tinyscrollbar( sizethumb: 134 ); 上返回错误,例如$(this) 无法接受 tinyscrollbar 函数:/(但它适用于在第一次页面加载时加载的元素)。 我尝试使用确切的 id ($('#exactID')) 以获得相同的结果......

感谢您的帮助! :)

编辑:所以看起来问题是由于$(window).load()函数中的插件丢失造成的,但它们仍然存在于$(document).ready();

【问题讨论】:

首先在 ie 中按 F12 打开控制台(如果您还没有打开控制台),这样 console.log() 就不会失败,然后执行 console.log($.type($.fn.tinyscrollbar)) 以确保插件已加载。 好的,很好,它返回“未定义”,但它在 $(window).onload 函数上,这怎么可能? (Firefox 返回“函数”) 好的,我已经在 $(document).ready 函数中测试了 sn-p,他返回“函数”。有什么问题 ? ready 应该在onload 之后触发,为什么函数是在ready 而不是在onload 中定义的? oO 这取决于代码在页面上的位置。你可以在两个地方包含 jquery.js 吗? 是的,已经加载了 2 个 jquery.js,会不会有问题(我知道这不好,我正在努力)? 【参考方案1】:

好的,谢谢你的帮助,我学会了一些技巧。 所以,我找到了解决方案:停用模块。 导致问题的模块:

名称:smartdownloader 类

编辑:泰丰互联网咨询有限公司

类型:Objet Application d’assistance du navigationur

版本:1.0.0.1

发布日期:

dernier accès 日期:Aujourd'hui ‎19 ‎janvier ‎2013,大约 6 分钟

类别 ID:F1AF26F8-1828-4279-ABCE-074EF3235BD7

使用次数:23

名称:9

Fichier:smarterdownloader.dll

档案:C:\Program Files (x86)\ SockshareDownloader

【讨论】:

以上是关于在 IE 的 jQuery Ajax 成功函数中无法识别选择器的主要内容,如果未能解决你的问题,请参考以下文章

JQuery AJAX介绍

jquery ajax请求成功也有response,但是不进success

ajax在jquery的底层是怎么实现的呢?

jQuery Ajax 微调器未在 IE7 中显示

jQuery $.ajax(),将成功数据传递给单独的函数

如何在 jquery ajax 成功函数中引用调用 dom 元素?