Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.03.2011, 16:21
Аспирант
Отправить личное сообщение для prog90 Посмотреть профиль Найти все сообщения от prog90
 
Регистрация: 04.06.2009
Сообщений: 51

Вопрос про jquery
<script type="text/javascript" src="http://code.jquery.com/jquery-1.5.js"></script>
<script type="text/javascript">
jQuery.noConflict();
(function($) {
$(window).load(function(){
$('img[class *= "expander"]').wrap('<a class="highslide no_link" href="' + $(this).attr('src') + '" onclick="return hs.expand(this);">');
});
})(jQuery);
</script>


Этот скрипт должен каждую картинку на странице обернуть в ссылку, для которой задать href равным src картинки, которую она(ссылка) оборачевает.
Почему-то href получается равным "undefined".

$(this).attr('src') - может быть здесь есть ошибка?
Ответить с цитированием
  #2 (permalink)  
Старый 27.03.2011, 18:03
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

В обработчике this равен window, с чего бы ему иметь атрибут src?
Писать надо так:

<script type="text/javascript" src="http://code.jquery.com/jquery-1.5.js"></script>
<script type="text/javascript">
jQuery.noConflict();
(function($) {
$(window).load(function(){
$('img[class*="expander"]').each(function () {

$(this).wrap('<a class="highslide no_link" href="' + $(this).attr('src') + '" onclick="return hs.expand(this);">')

});
});
})(jQuery);
</script>
Ответить с цитированием
  #3 (permalink)  
Старый 27.03.2011, 18:58
Аспирант
Отправить личное сообщение для prog90 Посмотреть профиль Найти все сообщения от prog90
 
Регистрация: 04.06.2009
Сообщений: 51

А где можно прочитать про то как определяется this? Почему в функции, переданной each, this - это объект img а не window?
Ответить с цитированием
  #4 (permalink)  
Старый 27.03.2011, 19:44
Профессор
Отправить личное сообщение для Matre Посмотреть профиль Найти все сообщения от Matre
 
Регистрация: 07.01.2011
Сообщений: 582

Всё предельно просто — и в each, и в load this фокусируется на объект, над которым производится действие. Т. е. делаем each по элементам — функцию вызывается для каждого элемента и this в ней ссылается на элемент, в load навешиваем событие на window — this в этой функции равен window.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос: И опять про offsetLeft... sigurd Общие вопросы Javascript 11 04.10.2010 14:06
Вопрос про ООП, цепочки прототипов. Shaci Общие вопросы Javascript 5 27.01.2010 14:50
Вопрос про $ в jquery vvsh Общие вопросы Javascript 6 06.09.2009 18:50
Вопрос про trigger Beck jQuery 4 03.09.2009 16:47
Вопрос про отправку данных методом Post QQQ AJAX и COMET 1 15.07.2009 23:27