在 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 成功函数中无法识别选择器的主要内容,如果未能解决你的问题,请参考以下文章