eugenii / jqueryrotate

Automatically exported from code.google.com/p/jqueryrotate
1 stars 0 forks source link

Not working IE8 #31

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Loading my site (only viewable by me at this time) in IE 8

What is the expected output? What do you see instead?
It rotates fine in other browsers, but nothing happens in ie, in fact, it's 
really putting a load on my computer as if it's trying to, but nothing happens, 
and IE says the page is still loading.

What version of the product are you using? On what operating system?
I downloaded 2.21, although the actual file says it's 1.8

Please provide any additional information below.
I've removed all other running scripts to see if there are any interferences, 
with no results.

Original issue reported on code.google.com by tammyhar...@gmail.com on 8 Apr 2011 at 9:39

GoogleCodeExporter commented 9 years ago
I have the same issue, the downloaded file is saying 1.8 but i think it's just 
a mistake...
I use this plugin only to make IE work with my animation but no changes xD

Original comment by guitarG...@gmail.com on 28 Apr 2011 at 8:55

GoogleCodeExporter commented 9 years ago
Investigating :)

Original comment by wil...@gmail.com on 28 Apr 2011 at 9:11

GoogleCodeExporter commented 9 years ago
I retested current version on IE8 and well.. I cant reproduce it on my test 
page. 

Can you please provide more info ? Like example web page where it doesnt work, 
or something similar ? Thank you !! :)

Original comment by wil...@gmail.com on 28 Apr 2011 at 9:34

GoogleCodeExporter commented 9 years ago
So I found that this DOES work in IE, but only for images. I have been trying 
to apply it to a "label". Is this possible. Supposedly it is suppose to from 
the documentation. Rotating labels works in all browsers except IE.

Original comment by anthonyc...@gmail.com on 7 May 2011 at 5:17

GoogleCodeExporter commented 9 years ago
This plugin is suppose to rotate only images :) (look description). 
Experimental version can also rotate other things, but has some issues with 
animating thats why its still not released (jQueryRotate3.js in trunk)

Original comment by wil...@gmail.com on 9 May 2011 at 7:14

GoogleCodeExporter commented 9 years ago
Hi there, thanks again for your plugin. :)
I had a closer look at the IE8-thing, because it doesn't work for me either. In 
my case, I have a circle, that rotates 120 degrees every click. It works fine 
in Firefox and Chrome. And even in IE8 you can click one time. After this, the 
image isn't there as an img-tag in the source code, as far as I see... and so 
my JS with the click function has no effect. 

Here is my code: http://pastebin.com/K1CYUsDr (the changing css classes are for 
the current status of the circle)
I also attached the html-file. 

To get something to work in the IE8, I could fadeIn, fadeOut the particular 
states, but it's not such a nice effect like a real rotating image. :)

I got this code out of the developer tools of IE8, just the container with the 
rotated image: http://pastebin.com/gEYbgbTq

I hope this helps, I hope I can help somehow. 

Bests

Original comment by bene0...@googlemail.com on 11 May 2011 at 8:29

Attachments:

GoogleCodeExporter commented 9 years ago
Well I also get into that problem... Unfortunately this is how this plugin 
works and for now I have no idea how I can solve it differently. Anyway I 
focusing on working on version 3 where that kind of problem will be solved.

The problem is that you binding jQuery even .click onto an image object. 
However for IE I need to replace this element with VML:image object that allows 
to rotate images. As you might easily understand this will remove a .click 
event also.

Thats why a "bind" attribute in jQueryRotate was introduced. Please use it 
(even with no rotation) if you want to bind events for that particular object. 
I know that this is not perfect solution and might creates issues (like this 
one), but I had no better idea how to solve problem where I have to replace 
source component with something different o_O

Original comment by wil...@gmail.com on 11 May 2011 at 8:34

GoogleCodeExporter commented 9 years ago
I think I had a problem similar to #6, but I realized the cause and solved it.

In my script, I did a "var $image = $('#container img');" at the beginning, and 
reused $image object every time I need to change the angle of the image, like 
"$image.rotate(newAngle)".

This works in Firefox, Chrome and IE9. In IE8 it works the first time, then the 
original image object is removed and replaced with code similar to the one 
posted by #6 ( http://pastebin.com/gEYbgbTq ), and trying to recall 
$image.rotate() results in errors like "img.parentNode is null or not an 
object".

So as a workaround for this bug you should assign an ID to the img tag, and 
recall $('#imageID').rotate(newAngle) every time.

I suggest developers to fix this bug by setting a variable in the original 
object with a reference to the new object, and if rotate() is called again on 
the original object the call should be forwarded to the new object.

This may not solve the issue if you bind to an event on the rotating element, 
but it will solve the issue if you bind the rotation to an event on another 
element and reuse the same object.

Original comment by fabiofab...@gmail.com on 26 May 2011 at 4:51

GoogleCodeExporter commented 9 years ago
Try replacing line ~132
 this._img.parentNode.removeChild(this._img);//replace this...
 jQuery(this._img).parent().find(this._img).remove();// with this

I get the error "_img.parentNode is not an object"
Using jQuery to remove the old image will fix this.  

Original comment by chris.an...@dealereprocess.com on 18 Nov 2011 at 7:58

GoogleCodeExporter commented 9 years ago
Sucks that non-image rotations are not supported in IE. How I love you IE, 
please never DIE!

Original comment by shah...@ghiassy.com on 13 Dec 2011 at 4:36

GoogleCodeExporter commented 9 years ago
Same Problem here... I get the Message "Parent Node is Null or no Object" in 
IE8.

Original comment by johannes...@gmail.com on 7 Jul 2012 at 5:52

GoogleCodeExporter commented 9 years ago
I had this issue. The only fix I was able to find was to rotate a fresh jQuery 
results, not a previousle saved reference.

E.g. this was failing:
var arrow = $('#arrow');
arrow.rotate(123);
/* some other code */
arrow.rotate(321);

But this never fails:
$('#arrow').rotate(123);
/* some other code */
$('#arrow').rotate(321);

The fix is not too nice, but it definitely works.

And yes, this most definitely is a plugin bug.

Original comment by mar...@saulis.com on 23 Oct 2012 at 2:00

GoogleCodeExporter commented 9 years ago
Thats indeed a kind of a bug. First time you call a .rotate on any object in IE 
it will be replaced with new HTML element. So an "arrow" object no longer 
points to a element that you would like to use later on. To fix that I 
encourage to call a $(element).rotate(0) before doing any operations. Still 
thinking how I could also replace a jQuery reference but it might be kinda 
tricky to do :/

Original comment by wil...@gmail.com on 23 Oct 2012 at 2:20

GoogleCodeExporter commented 9 years ago
As far as I can tell, you don't have to recall the jQuery object for every 
rotation; you can just reset the variable that references the object once after 
the initial rotation so the variable henceforward points to the vml:image 
object in IE. Thus, if you're doing an animated rotation, you don't have to 
keep doing jQuery's DOM look-up for every animation step -- that would lead to 
bad performance.

Original comment by Cper...@gmail.com on 7 Dec 2012 at 7:47

GoogleCodeExporter commented 9 years ago
Please bind image events using special "bind" parameter. I think this issue is 
long time fixed :)

Original comment by wil...@gmail.com on 11 Jul 2013 at 2:39

GoogleCodeExporter commented 9 years ago
#15 really works for me

Original comment by xcchcapt...@gmail.com on 12 May 2014 at 6:38

GoogleCodeExporter commented 9 years ago
I think Version 2 of Jquery Rotate is far better in resolving this issue. It 
worked for me, hope it will work for others as well.
https://jqueryrotate.googlecode.com/files/jQueryRotate.2.1.js

Original comment by samirban...@gmail.com on 27 Jan 2015 at 8:15