Как я могу запустить загрузку изображения, щелкнув другой элемент, а не само изображение (плагин Lazy Load jQuery)? - PullRequest
2 голосов
/ 15 июля 2010

В документации к плагину Lazy Load (плагин jQuery, который загружает изображения только при возникновении события) говорится:

Событием может быть любое событие jQuery, например щелчок или наведение курсора,Вы также можете использовать свои собственные события, такие как спортивный или Foobar.По умолчанию пользователь ожидает прокрутки вниз и появления в окне изображения.Чтобы запретить загрузку всех изображений до щелчка по их серому заполнителю, вы можете сделать следующее:

$("img").lazyload({ 
    placeholder : "img/grey.gif",
    event : "click"
});

В этом случае выполняется щелчок по изображению, но как можно запустить загрузку изображения, щелкнув по другому элементу?чем само изображение (скажем, якорная ссылка / кнопка)?

Ответы [ 3 ]

3 голосов
/ 15 июля 2010

используйте .trigger() для запуска события click, т. Е.

$(function() {

            $("img").lazyload({ 
                placeholder : "img/grey.gif",
                event : "click"
            });                 

            $('#clickme').click(function() {
                $('img').trigger('click');
            });
 });
1 голос
/ 09 января 2011

Демонстрационная страница jQuery Lazy Load plugin , похоже, не работает для меня на FF3.6 на Mac.Я смотрел HTTP-запросы на вкладке Net Firebug и видел все загруженные изображения при загрузке.

Может быть, стоит попробовать этот плагин под названием JAIL , который отлично работает.Если вы посмотрите на пример2, он похож на то, что вы ищете.

Ваш HTML может выглядеть следующим образом:

<img name="img/grey.gif" src="/global/images/blank.gif" width="width" height="height"/>

<a href"clickable">Click here to load the image</a>

и после импорта плагинаВы можете вызвать функцию следующим образом:

$('img').jail({
     event : "click", 
     selector : "a.clickable"
};
0 голосов
/ 06 марта 2013

Еще одно предложение, я создал ленивый плагин загрузки, который будет запускать событие, если элемент появится в поле зрения. Он подключен к событию прокрутки, однако с помощью $.fn.lazyloadanything('load') он принудительно заставит все события загрузки любых элементов, которые находятся в поле зрения. Может быть не совсем то, что вы ищете, но может работать:

https://github.com/shrimpwagon/jquery-lazyloadanything

...