$ cluetip не определено: почему? - PullRequest
0 голосов
/ 28 мая 2011

Когда я постзагрузил cluetip (то есть захватил его с помощью ajax, а затем добавил тег body к телу), я получил следующую ошибку javascript: $ cluetip не определен. Тем не менее, все еще работает. Есть идеи почему?

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

Ответы [ 3 ]

1 голос
/ 27 ноября 2011

У меня была похожая проблема, и вот как я наконец решил ее (т.е. не более $cluetip неопределенная ошибка msg).

Во-первых, вот мой сценарий, который может быть похож на ваш. На странице у меня есть

<div id="sel_area"></div>

Это пусто, и идея состоит в том, чтобы использовать jquery / ajax для динамического генерирования желаемого <select><option>...</option>...</select> HTML-кода для вставки в #sel_area выше, например,

$('#sel_area').html(data);

где данные - это сгенерированный тег HTML select.

Однако я думаю, что моя проблема в том, что я не настраивал результат динамически генерируемых данных в формате JSON или XML и затем обрабатывал его соответствующим образом. Вместо этого я лениво возвращал результат как есть, как обычный текст / html. Когда я продолжал получать $cluetip - неопределенная ошибка, независимо от того, что я пытался, я решил использовать alert(data), чтобы увидеть, что был возвращен. Увы, там я увидел своими глазами, что данные - это не только то, что я повторил, но к ним добавлена ​​вся HTML-страница! Решение было тогда ясно для меня. Не поддаваясь возвращению данных в протоколе XML или JSON, я внес следующие незначительные изменения для решения проблемы:

Изменение в удаленном скрипте, который генерирует тег <select>. Последний последний был

echo "$select_tag";

Я изменил это на

echo "$select_tag~";

То есть я добавил конечный ~ (тильда), который служит разделителем между выводом моей строки select_tag и HTML-страницей, которая, как я теперь знал, будет добавлена, нравится мне это или нет.

Изменение в методе jQuery / AJAX.

Я заменил строку

$('#sel_area').html(data);

со следующими строками:

data_list = data.split('~');
$('#sel_area').html(data_list[0]);

Вот, пожалуйста. Это делает трюк. Метод split позволил мне легко отделить желаемое select_tag от данных, потому что я мудро вставил ~ (тильду) в качестве разделителя полей, который, как я знал, не является ни частью результата select_tag, ни страницей HTML, к которой нужно добавить система. Надеюсь, это поможет.

0 голосов
/ 28 мая 2011

Я не знаю cluetip, и это может быть опечатка, но $cluetip не будет определено, $.cluetip (обратите внимание на ". ") должно быть.

Беглый взгляд на документы, кажется, заставляет меня думать, что cluetip - это функция, которая должна вызываться для некоторого элемента, например $('#somediv').cluetip(...).Если вам нужны глобальные значения по умолчанию, у вас есть $.cluetip.setup(...), но в любом случае он не будет определять $cluetip, просто $.cluetip.

0 голосов
/ 28 мая 2011

Динамически загружаемые скрипты не доступны сразу.Вам нужно дождаться полной загрузки скрипта, что является более сложной проблемой, чем можно себе представить.

...