Вопрос про 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') - может быть здесь есть ошибка? |
В обработчике 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> |
А где можно прочитать про то как определяется this? Почему в функции, переданной each, this - это объект img а не window?
|
Всё предельно просто — и в each, и в load this фокусируется на объект, над которым производится действие. Т. е. делаем each по элементам — функцию вызывается для каждого элемента и this в ней ссылается на элемент, в load навешиваем событие на window — this в этой функции равен window.
|
Часовой пояс GMT +3, время: 21:32. |