jQuery on IE8, error: Object doesn't support this property or method
I have jQuery for a WordPress theme I'm bui开发者_如何学Pythonlding. I've given up for now on testing IE6 and IE7 (layouting hell), and now I'm testing it using IE8. Every time I click on a prettyPhoto link OR a jQuery cycle link, JS gives out this error and fails to bring up the lightbox or move the slider. As usual his works fine in all the other browsers.
The site is in http://themes.thefirm.gambit.ph
You can see the error when in IE8, and when you click on the left or right arrows of the header area.
Object doesn't support this property or method
Can someone please help? Has anyone else encounter this? I'm quite stumped at this and I can't find anything from Google.
Update: I've uploaded the site and updated this question
The line in jQuery (minified version) that's causing the error is:
somehwere in line 140: var C=Bb.exec(u)
The solution is to change this line to:
var C=Bb.exec(u.toString())
@kirilloid is correct in that Regexp is throwing the error especially when the value being matched is numeric. e.g. animating css properties such as opacity, top, left, etc. Converting it to string fixes the problem. Now IE is not getting any more errors.
I don't like this fix very much since I edited the jQuery library file, but I guess I'll have to make do with it. The change doesn't have to have any bad side effects to normal functionality.
I just came upon the same problem. Instead of altering jQuery (yes, I realize it's a decent patch in the short term), contact the author of the Wordpress plugin/theme or Wordpress themselves if necessary. They can fix the problem by using string values instead of numeric values when they call .animate() or other effects. For example:
$(this).animate({opacity:0.5},500);
Should be:
$(this).animate({opacity:"0.5"},"500");
In reality, jQuery should address the problem to remain cross-browser, but in the meantime it's a solution.
精彩评论