我正在动态填充轮播菜单。为此我有一个web方法,它以字符串格式返回carousel div的内部html。
在页面加载时,我从服务器端调用了一个java脚本。这个javascript称为web方法,并在成功时加载div的内部html。
问题是,当我刷新页面时它正在工作。不是第一次加载。它也不适用于IE。然而,它正在我的本地ISS上工作(仅限Chrome)。
以下是java脚本
<script type="text/javascript" >
function HandleIT() {
var a = document.getElementById("carousel");
PageMethods.GetCarousel(onSucess, onError);
debugger;
function onSucess(result) {
debugger;
document.getElementById("carousel").innerHTML = result;
}
function onError(result) {
alert('Something wrong.');
}
}
</script>
这就是我在页面加载时从服务器端调用此javascript的方式。
ClientScript.RegisterStartupScript([GetType](), ClientID, " HandleIT();", True)
下面是旋转木马JS
var count = 0;
var baseSpeed = 0.05;
var radiusX = 190;
var radiusY = 40;
var centerX = 300;
var centerY = 190;
var speed = 0.3;
var imageDivs = '';
var numberOfElements = 0;
var carousel = '';
var speedTest = '';
window.addEvent('domready', function(){
carousel = $('carousel');
speedTest = $('speedTest');
imageDivs = carousel.getElementsByTagName("div");
numberOfElements = imageDivs.length;
setInterval('startCarousel()',40);
carousel.addEvent('mousemove', onMouseMove.bindWithEvent( carousel ));
});
function onMouseMove( evt ) {
tempX = evt.client.x;
speed = (tempX - centerX) / 2500;
}
function startCarousel(){
for(i=0; i < numberOfElements; i++){
angle = i * ( Math.PI * 2 ) / numberOfElements;
imageDivsStyle = imageDivs[ i ].style;
imageDivsStyle.position='absolute';
posX = ( Math.sin( count * ( baseSpeed * speed ) + angle )* radiusX + centerX );
posY = ( Math.cos( count * ( baseSpeed * speed ) + angle )* radiusY + centerY );
imageDivsStyle.left = posX+"px";
imageDivsStyle.top = posY+"px"
imageDivWidth = posY/3;
imageDivZIndex = Math.round(imageDivWidth)+100;
imageDivsStyle.width = imageDivWidth+'px';
imageDivsStyle.zIndex = imageDivZIndex;
angle += speed;
}
count++
}
我也在使用moottools JS
任何人都可以帮忙。我在IE中查了一下。它没有显示任何Javascript错误。但它没有加载。它只显示第一个项目的大图标(在chrome和IE中)。重新加载后,它在Chrome中工作,而不是在IE中。