2011-09-08 89 views
8

任何人都可以帮助我弄清楚为什么这段代码在IE 8上无法工作? (它适用于Chrome,Firefox,Opera)。为什么此代码在IE 8上不起作用?

的代码使用Raphäel.js库,代码允许用户拖动鼠标Raphäel.js元素(如:圆形,矩形贮)

请看看这里:

var paper = Raphael(0, 0, '100%', '100%'); 
 

 
var circle = paper.circle(75, 75, 50); 
 
var rect = paper.rect(150, 150, 50, 50); 
 

 
var set = paper.set(); 
 

 
set.push(circle, rect); 
 
set.attr({ 
 
    fill: 'red', 
 
    stroke: 0 
 
}); 
 

 
var ox = 0; 
 
var oy = 0; 
 
var dragging = false; 
 

 
set.mousedown(function(event) { 
 
    ox = event.screenX; 
 
    oy = event.screenY; 
 
    set.attr({ 
 
     opacity: .5 
 
    }); 
 
    dragging = true; 
 
}); 
 

 
set.mousemove(function(event) { 
 
    if (dragging) { 
 
     set.translate(event.screenX - ox, event.screenY - oy); 
 
     ox = event.screenX; 
 
     oy = event.screenY; 
 
    } 
 
}); 
 

 
set.mouseup(function(event) { 
 
    dragging = false; 
 
    set.attr({ 
 
     opacity: 1 
 
    }); 
 
});

+2

可能重复[拉斐尔图形不显示在IE8中](http://stackoverflow.com/questions/4501559/raphael-graphic-not-showing-in-ie8) – peirix

+1

它似乎在IE9中工作。当我把IE9放入IE8模式时,我得到这个错误:'SCRIPT5007:无法获得属性'vml'的值:对象为空或未定义raphael-1.5.2-min.js,第7行字符3824' – Eonasdan

+0

有一个问题与一些版本的IE浏览器,如果你尝试访问一个vml元素,它会抛出一个错误,一旦发生恢复是不可能的。无关的,但jQuery票7071有参考这个问题。我相信prototype.js也被修补了。 –

回答

相关问题