2012-06-08 3 views
1

У меня есть страница, которая динамически вытягивает содержимое с помощью запроса AJAX и JQuery. После загрузки содержимого я использую colorbox на полной функции для загрузки любого скрипта, который необходим. Одна из вещей, которые я пытаюсь загрузить это кнопка ShareThis и моя наценка как таковой:Share Это не работает в содержимом, вызванном через AJAX

HTML

<span class="st_sharethis_custom"></span> 

Внутри функции OnComplete ColorBox в у меня есть это.

$.getScript("http://w.sharethis.com/button/buttons.js", function() {}); 
    var switchTo5x=false; 
    stLight.options({publisher: "ur-a4a2b4d1-36da-c1a3-4eee-8eedd1e95feb"}); 

Когда я запускаю лайтбокс и наведите указатель мыши на кнопку ShareThis, я получаю следующую ошибку.

stButtons.messageQueueInstance является нулевым

Любая помощь по этому вопросу было бы весьма признателен.

Благодаря

+0

Возможно, вам необходимо предоставить больше контекста кода для этого вопроса. –

ответ

2

getScript загружает асинхра скрипта. Таким образом, в вашем коде вызывается stLight.option() до загрузки скрипта. Попробуйте изменить код:

$.getScript("http://w.sharethis.com/button/buttons.js", function() { 
    var switchTo5x = false; 
    stLight.options({publisher: "ur-a4a2b4d1-36da-c1a3-4eee-8eedd1e95feb"}); 
}); 

Это говорит JQuery для запуска вам initialisation(stLight.options()) после того, как он завершил getScript() вызов.

4

Возможно, вы дважды вызывали button.js. Один на главной странице, а другой - на странице ajax. Вместо этого вы можете попробовать позвонить stButtons.locateElements().