JQuery (это) и Qtip не работает - PullRequest
1 голос
/ 27 июля 2011

Используя плагин qtip jQuery, я пытаюсь отобразить скрытое значение (оно уже отображается при наведении на значки. Проблема в том, что он захватывает только первый элемент в списке и отображает его в qtip. Теперь я знаю обычный ответом будет использование селектора «this» для его назначения, но в этом случае он просто не работает ...

Вот код:

jQuery('li dl dd.job_icons').qtip({
    content: {
      prerender : true,
      text: jQuery('li dl dd.job_icons').html()
    }
});

И я тоже пытался использовать это, но не повезло:

text: jQuery(this).html()

Чтобы получить более четкое изображение, просмотрите эту ссылку и наведите указатель мыши на значки (некоторые имеют разные даты, а другие будут иметь значки зарплаты и названия компании, которые также должны отображаться)

Заранее спасибо ...

РЕДАКТИРОВАТЬ: Вот HTML, который отображается

<li class="job job-alt job-featured"> 
 <dl> 
  <dt>Type</dt> 
  <dd class="type"><span class="jtype full-time">Full-Time</span></dd> 

  <dt>Job</dt> 
  <dd class="title"> 
    <strong>
    <a href="http://rockstar.tinygiantstudios.co.uk/jobs/front-end-developer-2/">Front End Developer</a>
    </strong> 
  </dd> 

  <dt>Location</dt> 
  <dd class="location">Anywhere</dd> 

  <dt>Job Admin</dt>    
    <dd class="job_icons"> 
    <div class="job_icons_wrap"> 
     <span class="job_date_detail">7 Feb</span> 
     <a href="#" class="job_date_icon"></a> 

     <a href="http://tinygiantstudios.co.uk" rel="nofollow" class="job_lister_detail">Tiny Giant Studios</a> 
     <a href="#" class="job_lister_icon"></a> 

     <span class="job_salary_detail jtype 100000-and-above">100,000 and above</span>
     <a href="#" class="job_salary_icon"></a> 
 </div>    
 </dd> 
</dl> 
</li>

Ответы [ 2 ]

4 голосов
/ 27 июля 2011

Попробуйте каждый ().Он имеет правильную область видимости для использования this.

jQuery('li dl dd.job_icons').each(function() 
    jQuery(this).qtip({
        content: {
          prerender : true,
          text: jQuery(this).html()
        }
    });
});
0 голосов
/ 27 июля 2011

Даже если вы уже решили это, используя ответ Дениса, вот что я придумал, используя each(), который может или не может помочь вам получить то, что вы хотите:

jQuery('li dl dd.job_icons a[class$=_icon]').each(function() {
    var classToSearch = jQuery(this).attr('class').replace('_icon', '_detail');
    jQuery(this).qtip({
        content: {
            prerender: true,
            text: jQuery(this).closest('dd.job_icons').find('.' + classToSearch).html()
        }
    });
});
...