Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   [новичек] Не работает вызов ф-ции по событию onMouseOver (https://javascript.ru/forum/events/3705-%5Bnovichek%5D-ne-rabotaet-vyzov-f-cii-po-sobytiyu-onmouseover.html)

Vo.One 15.05.2009 18:51

[новичек] Не работает вызов ф-ции по событию onMouseOver
 
Суть состоит в замене background-картинки div'a при хождении мышкой по ссылкам. Если вызывать ф-цию по событию клика, то все работает.
А вот с hover'ом - не желает. Куда копать?
Заранее благодарю.

//change the opacity for different browsers
function changeOpac(opacity, id) {
	var object = document.getElementById(id).style; 
	object.opacity = (opacity / 100);
	object.MozOpacity = (opacity / 100);
	object.KhtmlOpacity = (opacity / 100);
	object.filter = "alpha(opacity=" + opacity + ")";
}

// fading
function blendimage(divid, imageid, imagefile, millisec) {
	var speed = Math.round(millisec / 100);
	var timer = 0;
	
	//set the current image as background
	document.getElementById(divid).style.backgroundImage = "url(" + document.getElementById(imageid).src + ")";
	
	//make image transparent
	changeOpac(0, imageid);
	
	//make new image
	document.getElementById(imageid).src = imagefile;

	//fade in image
	for(i = 0; i <= 100; i++) {
		setTimeout("changeOpac(" + i + ",'" + imageid + "')",(timer * speed));
		timer++;
	}
}


<div style="background-image: url(product-selector/0.jpg); background-repeat: no-repeat; width: 720px; height: 200px;" id="blenddiv">
		<img src="product-selector/0.jpg" style="width: 720px; height: 200px; border: 0 none; filter: alpha(opacity=0); -moz-opacity: 0; -khtml-opacity: 0; opacity: 0;" id="blendimage" alt="" />
</div>
	
<a href="#" onMouseOver = "blendimage('blenddiv','blendimage','product-selector/8.jpg',100);" >НЕ_Работает</a>

<a href="javascript:blendimage('blenddiv','blendimage','product-selector/8.jpg',100);" >Работает</a>

Gvozd 15.05.2009 19:10

у вас есть функция blendimage и <div id='blendimage'>
в некоторых браузерах элементы по своим ID попадают в глобальную область видимости.
рекомендую дать див-у другой ид.
еще можно так:
<a href="#" onmouseover = "window.blendimage('blenddiv','blendimage','product-selector/8.jpg',100);" >НЕ_Работает</a>

но это не правильное решение проблемы, и возможно не везде будет работать

Vo.One 16.05.2009 10:08

[новичек] Не работает вызов ф-ции по событию onMouseOver
 
Благодарю, в FF, Opera, IE6 все работает наотличненько1!!111 :yes:


Часовой пояс GMT +3, время: 09:44.