我在IE7中收到'意外调用方法或属性访问',我的脚本在IE8中不起作用,我不能为我的生活找出原因。
我一直在IE中使用开发者工具(woohooo!),但它没有多大帮助。我得到的错误是在Jquery:
SCRIPT65535:意外调用方法或属性访问。 jquery.js?ver = 1.7.1,第3行字符31871
它在IE9,Safari,FF和Chrome中运行得非常好。
在Html页面上,我单击以下链接,该链接将data-tax属性的值传递给脚本。你认为它可能与html5有什么关系吗?任何指针都将非常感激。
例如,如果您单击Brad Pitt,它应显示Brad Pitt所在的电影:
<li class="ajaxFilterItem brad-pitt af-actor-6 filter-selected" data-tax="actor=6"><a href="#" class="ajax-filter-label"><span class="checkbox"></span>Brad Pitt</a> (1)</li>
我将以下值传递给
filterAjaxify("actor=6")
这是违法的代码:
(function($){
var isRunning = false;
// Return an array of selected navigation classes.
function loopSelected(_node) {
var _arr = [];
_node.each(function(){
var _class = $(this).attr('data-tax');
_arr.push(_class);
});
return _arr;
};
// Animate the progress bar based on Ajax step completion.
function increaseProgressBar(percent){
$('div#progbar').animate({
width: percent + '%'
},30);
};
// Join the array with an & so we can break it later.
function returnSelected(){
var selected = loopSelected($('li.filter-selected'));
return selected.join('&');
};
// When the navigation is clicked run the ajax function.
$('a.ajax-filter-label, a.paginationNav, a.pagelink').live('click', function(e) {
if(isRunning == false){
isRunning = true;
e.preventDefault();
var relation = $(this).attr('rel');
if($(this).parent('li').length > 0) {
$(this).parent('li').toggleClass('filter-selected');
thisPage = 1;
}
if(relation === 'next'){
thisPage++;
} else if(relation === 'prev') {
thisPage--;
} else if($(this).hasClass('pagelink')){
thisPage = relation;
}
filterAjaxify(returnSelected());
}
});
// Do all the ajax functions.
function filterAjaxify(selected){
$.ajax({
url: ajaxurl,
type: 'post',
data: {
"action":"affilterposts",
"filters": selected,
"posttypes": posttypes,
"qo": qo,
"paged": thisPage,
"_ajax_nonce": nonce
},
beforeSend: function(){
$('div#ajax-loader').fadeIn();
$('section#ajax-filtered-section').fadeTo('slow',0.4);
increaseProgressBar(33);
},
success: function(html){
increaseProgressBar(80);
$('section#ajax-filtered-section').html(html);
},
complete: function(){
$('section#ajax-filtered-section').fadeTo('slow',1);
increaseProgressBar(100);
$('div#ajax-loader').fadeOut();
isRunning = false;
},
error: function(){}
});
};
})(jQuery);
答案 0 :(得分:5)
<section>
是HTML5中的新功能,旧的IE浏览器不知道如何消化它,并且当您尝试将内容添加到此类元素时会出现一些DOM问题。