| |
|
|
| | постоянно натыкаюсь на какой-то гемор при использовании 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)
| | | блин даже обидно как Я эту лоховскую ошибку не заметил(( | |
| |
|
|