jQuery qtip() - как да получите id от mouseover, .$load()

Имам функцията Jquery qtip() и трябва да получа идентификационния номер при преместване на мишката над връзка. Мога ли да използвам jquery .load(), за да получа страницата. Не мога да използвам кода по-долу. Някой знае ли?

По-долу е моят скрипт

$(function () {
      $(".cabinlink").qtip({
content: $("#loadCabin").load("/mysite ." + $(this).attr('id')),

                 show: 'mouseover',
                 hide: 'mouseout',

                 style: {
                     width: 780
                 },
                 position: {
                     corner: {
                         target: 'LeftBottom',
                         tooltip: 'TopLeft'
                     }
                 }
             });
         });

.cabinlink е връзката за задържане на мишката

<a id="1" href="/bgjavascript:void(0)" class="cabinlink" />
<a id="2" href="/bgjavascript:void(0)" class="cabinlink" />
<a id="3" href="/bgjavascript:void(0)" class="cabinlink" />

loadCabin е div за отваряне на кутията qtip

<div id="loadCabin"></div>

Променени кодове, които могат да работят, но трябва да минете с мишката два пъти. първото преместване на мишката без резултат. Някой знае ли?

 $(function () {
         $(".cabinlink").live('mouseover', function () {

             var id = $(this).attr('id');
             var url = "/Mysite ." + id;
             $(this).qtip({
                 overwrite: false,
                 content: $("#loadCabin").load(url),
                 show: { ready: true, when: false },
                 hide: 'mouseout',
                 style: {
                     width: 780
                 },
                 position: {
                     corner: {
                         target: 'LeftBottom',
                         tooltip: 'TopLeft'
                     }
                 }

             });
         });

     });

person Complicated Huang    schedule 06.03.2013    source източник
comment
Идентификаторите не могат да започват с цифри.   -  person Blender    schedule 06.03.2013
comment
Не познавам API на qtip достатъчно добре, за да отговоря на въпроса ви, но мога да ви кажа, че не получавате идентификатора там, където очаквате, защото това се отнася до обекта с опции, който предавате на qtip, а не към елемента който беше задържан. Предполагам, че една от опциите на qtip ви позволява да подадете функция за обратно извикване, от която вашето извикване на $(this).attr('id') ще върне идентификатора на елемента, както очаквате.   -  person Matt Browne    schedule 06.03.2013
comment
В допълнение към това, трябва да имате предвид времето...$(.cabinlink).qtip(...) се изпълнява веднага щом страницата се зареди и просто й казва да се инициализира с дадените опции. По-късно събитията при задържане се обработват от qtip и едва тогава ще разберете кой елемент е бил задържан.   -  person Matt Browne    schedule 06.03.2013
comment
@Blender Наистина е най-добре да избягвате идентификатори, започващи с числа (само HTML5 ги позволява и те все още трябва да се избягват), но не това е причината за проблема тук   -  person Matt Browne    schedule 06.03.2013
comment
@MattB.: Ха, не знаех, че това се е променило в HTML5. Благодаря.   -  person Blender    schedule 06.03.2013
comment
@Blender Честно казано, аз току-що разбрах. Коментарът ви ме подтикна да го потърся, тъй като никога не съм имал желание да започна ID с номер и не знаех за правилото. Повече информация тук: stackoverflow.com/questions/70579/   -  person Matt Browne    schedule 06.03.2013
comment
BTW методът live() е отхвърлен. Вместо това използвайте on(): api.jquery.com/on   -  person Matt Browne    schedule 08.03.2013


Отговори (1)


Опитайте тази:

$(".cabinlink").qtip({
    onShow: function() {
        $("#loadCabin").load("/mysite." + $(this).attr('id'))
    },

     show: 'mouseover',
     hide: 'mouseout',

     style: {
         width: 780
     },
     position: {
         corner: {
             target: 'LeftBottom',
             tooltip: 'TopLeft'
         }
     }
 });

Ако това не работи, една от другите функции за обратно извикване може...вижте http://craigsworks.com/projects/qtip/docs/api/#callbacks

person Matt Browne    schedule 06.03.2013
comment
не мога да го накарам да работи с вашите кодове. Промених кодовете, както по-горе, изглежда, че работи по този начин, но проблемът сега е, че трябва да преместя курсора на мишката два пъти този път. Първото преместване на мишката не показва нищо. Някаква идея - person Complicated Huang; 08.03.2013
comment
Изглежда, че може да се наложи сами да се справите със събитието за преминаване на мишката и след това да използвате метода updateContent на API на qtip, както е показано тук: stackoverflow.com/questions/6879907/. Имайте предвид, че ще трябва да използвате метода $.get или $.ajax вместо $.load, за да използвате този подход. - person Matt Browne; 08.03.2013
comment
Всъщност мисля, че вашата ситуация е различна от тази във връзката; може да има по-лесно решение, ще пиша тук, ако се сетя. - person Matt Browne; 08.03.2013
comment
Забравете предишните ми коментари (нямате нужда от собствен манипулатор на mouseover()); опитайте това вместо това: stackoverflow.com/a/2297936/560114 (имайте предвид, че направих връзка към конкретен отговор; приетият отговор на този въпрос е неправилен). - person Matt Browne; 08.03.2013