【发布时间】: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,会不会有问题(我知道这不好,我正在努力)?
标签: jquery ajax internet-explorer jquery-selectors