|
|
|
| постоянно натыкаюсь на какой-то гемор при использовании Prototype
проблема такая:
есть 3 картинки с классом banner в слое с id = 'extras'
хочу их получить, для чего:
function process_banners()
{
var banners = $( 'extras' ).getElementsByClassName( 'banner' );
var len = banners.length;
for ( var i=0;i<len;i++ )
{
banner = banners[i];
banner.onmouseover = function(){ banner.setStyle({border: '1px solid #666'}) };
banner.onmouseout = function(){ alert( 'bbb' ); };
}
}
|
что самое глупое - при наведнии мышки на какую-либо из картинок подсвечивается только последняя. т.е. все действия происходят только над последней((( помогите разобраться плиз в чем трабл... | |
|
|
|
|
|
|
|
для: 1999
(30.09.2007 в 01:08)
| | getElementsByClassName не поддерживается ни одним из браузеров - в этом ваша проблема | |
|
|
|
|
|
|
|
для: CNT
(30.09.2007 в 01:12)
| | вопрос не по джаваскрипту, а по библиотеке Prototype. кхм... вы про такую слышали когда-нибудь? | |
|
|
|
|
|
|
|
для: 1999
(30.09.2007 в 01:27)
| | нет, не слышал - оные штучки для лохов мне без надобности. | |
|
|
|
|
|
|
|
для: 1999
(30.09.2007 в 01:08)
| | внутри функции которую присваиваете вместо banner пишите this
иными словами указатель нужен на данный объект, а не ссылка на последний полученный баннер | |
|
|
|
|
|
|
|
для: bronenos
(30.09.2007 в 01:13)
| | изменил на
function process_banners()
{
var banners = $( 'extras' ).getElementsByClassName( 'banner' );
var len = banners.length;
for ( var i=0;i<len;i++ )
{
this.onmouseover = function(){ this.setStyle({border: '1px solid #666'}) };
this.onmouseout = function(){ this.setStyle({border: '1px solid #CCC'}) };
}
}
|
теперь не подсвечивается ничего(((
ну и к тому же вопрос банальный - откуда javascript узнает что такое this в цикле? | |
|
|
|
|
|
|
|
для: 1999
(30.09.2007 в 01:28)
| | this везде означает - текущий объект
видимо я ошибся уже
что если команду эту обернуть в кавычки а не в функцию | |
|
|
|
|
|
|
|
для: bronenos
(30.09.2007 в 01:36)
| | то же.... я просто вобще не понимаю почему так получается (ну как я в начале делал)
как будто последний в цикле всех забивает | |
|
|
|
|
|
|
|
для: 1999
(30.09.2007 в 01:39)
| |
banner = banners[i];
banner.onmouseover = function(){ this.setStyle({border: '1px solid #666'}) };
|
? | |
|
|
|
|
|
|
|
для: AlexSol
(30.09.2007 в 07:37)
| | спасибо! вчера засыпал так и думал что как-то так надо... вот теперь все оправдалось) | |
|
|
|
|
|
|
|
для: AlexSol
(30.09.2007 в 07:37)
| | блин даже обидно как Я эту лоховскую ошибку не заметил(( | |
|
|
|