2010-02-19 2 views
4

Я хочу передать динамический параметр с помощью qTip, но он терпит неудачу. my_ajax_controller.php просто отображает тип переменной, но не q.Динамические параметры для динамического содержимого с qTip

$('a.menu_help').qtip({ 
    content: { 
     url:'my_ajax_controller.php', 
     data: 'type=help_menu&q='+$(this).attr('id'), 
     method: 'get' 
    }, 
    show: 'mouseover', 
    hide: 'mouseout' 
}); 

Однако статическое значение д работ:

$('a.menu_help').qtip({ 
    content: { 
     url:'my_ajax_controller.php', 
     data: 'type=help_menu&q=toto', 
     method: 'get' 
    }, 
    show: 'mouseover', 
    hide: 'mouseout' 
}); 

Неужели нет способа передать динамическое значение данных параметров?

Заранее благодарен!

Флоран

ответ

-7

Он должен работать, а просто посмотрим, что вы передаете в качестве удостоверения личности, или передать данные в коллекции что-то вроде:

 
data : {'type':'help_menu', 'q':id} 

Или

 
$('a.menu_help').qtip({ 
    var id = $(this).attr('id'); 
    alert(id); 
    content: { 
     url:'my_ajax_controller.php', 
     data: 'type=help_menu&q='+ id, 
     method: 'get' 
    }, 
    show: 'mouseover', 
    hide: 'mouseout' 
}); 
+0

Это не работает. –

+0

Я подтверждаю, что это не сработает, вы выполняете задания внутри определения объекта. Вы получите идентификатор 'missing: after property ' –

8

попробовать что-то вроде этого:

$('a.menu_help').each(function(){ 
    $currentLink = $(this); 
    $currentLink.qtip({ 
     content: { 
      url:'my_ajax_controller.php', 
      data: 'type=help_menu&q='+$currentLink.attr('id'), 
      method: 'get' 
     }, 
     show: 'mouseover', 
     hide: 'mouseout' 
}); 

Я не проверял, но я сделал что-то подобное. Просто не могу найти его прямо сейчас.

+0

Это решение работает красиво. – Jeremy

+0

Будет ли он по-прежнему работать со многими элементами qtipped? –

+0

производительность не должна сильно отличаться, если вы сразу опрокидываете их. – Patricia

3

У меня была такая же проблема, и я решил с этим кодом. Работает отлично с qtip 1.0 rc3 и JQuery 1.4.2. Обратите внимание, что qtip имеет и проблема с jquery> 1.3. Google для соответствующей информации, но легко исправить добавление одной строки на jquery.qtip.js

$('.username_link').each(function(){ 
    $(this).click(function(){ return false });//JS enabled => link default behavior disabled. Gaceful degradation 
    $(this).qtip({ 
    content: { url: '/users/links', 
       data: { id: $(this).attr('data-id') }, 
       method: 'post' 
      }, 
    show: 'click', 
    hide: 'mouseout' 
    }) 
}); 
Смежные вопросы