jquery - получить атрибут html из вызова функции - PullRequest
3 голосов
/ 16 июля 2010

Я пытаюсь вызвать другую подсказку в соответствии с атрибутом id тега привязки.Мой код JavaScript выглядит следующим образом:

$(function()
{
   $('.tippy').qtip(
   {
      content: {
          url: "http://mydomain.com/product/mini/" + $(this).attr("id") // doesn't work
      },

      hide: { when: 'mouseout', fixed: true },

       position: {
         corner: {
            target: 'bottomRight',
            tooltip: 'topLeft'
         }
      }
   });

});

мой HTML-код выглядит следующим образом:

<div>this is the text and I would like to reference the <a href="product.php" class="tippy" id="123456">superproduct</a> with qtip.</div>

Я застрял, не могли бы вы помочь мне, пожалуйста?

1 Ответ

4 голосов
/ 16 июля 2010

Использование each():

$('.tippy').each(function() {  
   $(this).qtip({
          content: {
              url: "http://mydomain.com/product/mini/" + $(this).attr("id")
          },
          hide: { when: 'mouseout', fixed: true },   
          position: {
             corner: {
                target: 'bottomRight',
                tooltip: 'topLeft'
             }
          }
   });
)};

Причина, по которой $(this) не работает в вашем коде, проста: это , а не внутри вызова функции (по крайней мере, там, где this должен ссылаться на элемент .tippy). $(this).attr() выполняется, когда вы создаете объект, который передается в qtip(). Это означает, что он находится в том же контексте, что и $('.tippy'), и, следовательно, this, скорее всего, относится к window.

...