[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: ошибка:требуется объект
Guest
ошибка возникает сразу при загрузке документа и только в ie6 и ie7
он указывает на строчку, в которой используется созданный объект, в чем именно причина непонятно.
p.s. тестирую в ietester



Спустя 11 минут, 3 секунды (11.06.2010 - 11:09) Michael написал(а):
телепаты в отпуске. Код выкладывай - с указанием проблемной строчки.

Спустя 6 минут, 36 секунд (11.06.2010 - 11:16) Guest написал(а):
Michael
<script type=type="text/javascript">
var effects= new effects();
</script>
<div id="navstart">Главная </div>
<script type="text/javascript">
effects.changePic('navstart', 'navigatestartover.jpg','navigatestart.jpg');
</script>


function effects ()
{
this.changePic=function (id, img1, img2, group)
{
var group=group||1;
if (group<2)
{
$id(id).onmouseover="this.style.backgroundImage='url(../images/"+img1+")'";
$id(id).onmouseout="this.style.backgroundImage='url(../images/"+img2+")'";
}
else
{
for(var i=1; i<=group;i++){
$id(id+i).onmouseover="this.style.backgroundImage='url(../images/"+img1+")'";
$id(id+i).onmouseout="this.style.backgroundImage='url(../images/"+img2+")'" }
}
}
}


function $id(id){
return document.getElementById(id)}


РАБОТАЕТ ТОЛЬКО В ОПЕРЕ
ошибку я уже писал
строка 25, это там где начинается effects.changePic

Спустя 1 минута, 44 секунды (11.06.2010 - 11:18) Guest написал(а):
на верху опечатка с type

Спустя 2 минуты, 42 секунды (11.06.2010 - 11:20) Basili4 написал(а):
НЕ используй одинаковые имена для переменных и функций var effects= new effects();

Спустя 2 минуты, 53 секунды (11.06.2010 - 11:23) Guest написал(а):
Basili4
это так существенно? поменял имя класса, все равно работает только в опере(хром и сафари не пробовал), но ff и ie никак

Спустя 9 минут, 42 секунды (11.06.2010 - 11:33) Guest написал(а):
if (group<2)
{
$id(id).setAttribute('onmouseover',"this.style.backgroundImage='url(../images/"+img1+")'");
$id(id).setAttribute('onmouseout',"this.style.backgroundImage='url(../images/"+img2+")'");
}
else
{
for(var i=1; i<=group;i++){
$id(id+i).setAttribute('onmouseover',"this.style.backgroundImage='url(../images/"+img1+")'");
$id(id+i).setAttribute('onmouseout',"this.style.backgroundImage='url(../images/"+img2+")'");}
}


вот так заработало еще и в ie8 и ff, но ie6,7 до сих пор тупят

Спустя 2 минуты, 53 секунды (11.06.2010 - 11:36) Гость_Michael написал(а):
onmouseover="this.
- неверно onmouseover должна быть функцией, т.е. :
.onmouseover = function(){
// ...
}


Спустя 18 минут, 47 секунд (11.06.2010 - 11:55) Guest написал(а):
Гость_Michael
большое спасибо, все четко
и еще вопрос можно.
почему то если делаю вот так:
<div id="id1" class="ratesover" onmouseover="vote.rateOver(this.id)" </div>
<div id="id2" class="ratesover" onmouseover="vote.rateOver(this.id)" </div>

то если вставляю в событие функцию объекта, то в ie не работает.

this.rateOver = function (id)
{
this.rate=id.substr(-1,1);
for (i=this.rate;i>0;i--){
$id('id'+i).style.backgroundImage="url(../images/rateover.jpg)";}
}



Спустя 9 минут, 21 секунда (11.06.2010 - 12:04) Гость_Michael написал(а):
Что не работает ? id нормально в функцию передается - проверил.

Спустя 1 минута, 24 секунды (11.06.2010 - 12:05) Guest написал(а):
Гость_Michael
рисунок не меняется, в остальных браузерах - меняется

Спустя 37 минут, 21 секунда (11.06.2010 - 12:43) Guest написал(а):
дописал alert (this.rate);
в ie выводит "r"
то есть this.rate=id.substr(-1,1) ie выполняет как-то по-своему,
как можно забрать последнюю букву с id, чтобы ie нормально понимал???

Спустя 16 минут, 30 секунд (11.06.2010 - 12:59) Guest написал(а):
я фигею от ie
id.substr(id.length-1,1);
просто -1 он не понимает оказывается))
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.