jquery не работает без предупреждения ()

Это мой jQuery:

    $(document).ready(function(){

    $('#mycarousel').jflickrfeed({
        limit: 14,
        qstrings: {
            id: '26339121@N07'
        },
        itemTemplate: '<li><a href="{{image_b}}"><img src="{{image_m}}" alt="{{title}}" width="155" /></a></li>'
    });

    alert("msg");

    $('#mycarousel').jcarousel({
        auto: 3,
        scroll: 1,
        wrap: 'last',
        animation: 800,
        initCallback: mycarousel_initCallback
    });

});

Но если я удалю "оповещение ("msg");" этот код не работает должным образом ... Кто-нибудь может помочь мне с этой проблемой?

Спасибо !!!!!!!!


person AlexC    schedule 19.03.2010    source источник


Ответы (2)


Ну, вы не даете никакого объяснения тому, что делает jflickrfeed, кроме волшебных слов:

этот код работает только с установленным предупреждением

говорит мне, что у вас проблема с асинхронным кодом. Я предполагаю, что jflickrfeed возвращается асинхронно.

это означает, что функция возвращает управление вашему сценарию до того, как он завершит выполнение того, о чем вы его просили. В программе Javascript это обычно означает, что был сделан вызов на сервер. Такой асинхронный код обычно включает возможность определения обработчика, то есть функции, которая вызывается после завершения асинхронной задачи.

Если у вас есть код, который зависит от завершения асинхронной задачи, его следует поместить в обработчик, а не сразу после вызова асинхронной функции.

person Dancrumb    schedule 19.03.2010
comment
+1 Это действительно причина. jflickrfeed, кажется, принимает второй параметр (newmediacampaigns.com/page/jquery-flickr-plugin), которая является функцией обратного вызова, которая выполняется по завершении. Вставьте туда функцию jcarousel, и она должна работать. - person Chetan S; 19.03.2010

Я не знаю, какой элемент управления вы используете, но это определенно проблема времени. Если вы удалите оповещение, фид flickr еще не закончил загрузку, когда вы вызываете jcarousel. Тогда этой функции, вероятно, пока не с чем работать.

Вам нужно будет рассчитать время второго вызова, чтобы он сработал, после чего загрузка с flickr успешно завершилась. Чтобы сделать это, jflickrfeed возможно, как обратный вызов success.

person Pekka    schedule 19.03.2010
comment
какое может быть возможное решение для этот вопрос - person Tom; 19.02.2012