2010-08-11 3 views
2

Для приложения, которое я пишу, мне нужно динамически загружать контент в DIV при отправке формы.Загрузка jQuery qTip-код динамически

Это динамически загружаемое содержимое требует нескольких всплывающих подсказок, которые будут отображаться автоматически во время загрузки (нет необходимости в событии для его запуска). Я выбрал qTip, потому что у него есть параметры для этого, в отличие от большинства других всплывающих подсказок, которые мне нужны, для чего требуется вызвать подсказку (например, onmouseover).

Это QTIP код, используемый для достижения этой цели:

 
$(function(){ 
    $('#someelement').qtip({ 
     content: 'This is the message!', 
     show: { ready: true, when: false }, 
     hide: { false }, 
     position: { 
      corner: { 
       target: 'topLeft', 
       tooltip: 'bottomRight' 
      } 
     }, 
     style: { 
         ............ styling code here................ 
      } 
     } 
    }) 
}); 

Это прекрасно работает в какой-либо форме, что я пытаюсь его. Наконечник успешно отображается.

Однако всплывающая подсказка не появляется, если я динамически загружаю этот код вместе с содержимым.

Содержимое загружается с использованием прекрасной формы Malsup и таконитовых плагинов.

Любые идеи были бы высоко оценены!

Конечно, если вы знаете другой метод или плагин, который я мог бы использовать для достижения такого же эффекта, не стесняйтесь предлагать его. :)

+0

Вы говорите: «всплывающая подсказка не появляется, если я динамически загружаю этот код вместе с содержимым». Что такое «этот код»? –

+0

«Этот код» - это код, который вы видите выше. Я вставляю текст и HTML динамически в страницу. Наряду с кодом jquery, который вы видите выше, чтобы активировать несколько подсказок в этом тексте, я динамически вставляю. Кажется, qTip не знает динамически вставленного текста и не может найти элементы для применения подсказок. – lvp1138

ответ

2

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

$(function(){ 
    loadQtip(); 
}); 

function loadQtip() { 
    $('#someelement').qtip({ 
     content: 'This is the message!', 
     show: { ready: true, when: false }, 
     hide: { false }, 
     position: { 
      corner: { 
       target: 'topLeft', 
       tooltip: 'bottomRight' 
      } 
     }, 
     style: { 
         ............ styling code here................ 
      } 
     } 
    }) 
} 

Тогда при добавлении новых данных снова вызовите функцию:

... 
complete: function() { 
    loadQtip(); 
} 

Вы найдете такие события, как мыши , изменение и т. д. Метод .live() работает, но когда ваш параметр плагина для элемента не является постоянным методом.

+0

Мне нравится ваша идея! Я создал функцию, с которой могу передавать параметры. Параметры - это в основном текст всплывающей подсказки, а также элемент, который будет иметь всплывающую подсказку. Затем я могу вызвать эту функцию из команд EVAL из taconite, которые в основном выполняют код jQuery, когда я вызываю плагин taconite. Но ... похоже, что qtip все еще не знает динамически вставленного контента. Я могу запустить свою функцию после вызова «ajax» и применить всплывающие подсказки ко многим элементам веб-сайта. Однако, похоже, qTip не знает о элементах, которые я динамически вставляю. :( – lvp1138

+0

Так что, похоже, qTip не может найти в DOM элементы, которые я только что вставил ... – lvp1138

Смежные вопросы