2008-10-03 16 views
7

Tablolarımın içinde "td" öğesine jquery ile bir tooltip/alt eklemem gerekiyor.Araç ipucunu jquery ile "td" ye nasıl eklersiniz?

Birisi bana yardımcı olabilir mi?

Denedim:

Ben "Bu" olarak "td" kullanıyorum doğruladıktan
var tTip ="Hello world"; 
$(this).attr("onmouseover", tip(tTip)); 

.

** Düzenleme: ** "Uyarı" komutunu kullanarak "td" öğesini yakalayabiliyorum ve çalıştı. Yani bir sebepten dolayı "ipucu" işlevi çalışmıyor. Bunun neden olacağını bilen var mı?

cevap

24
$(this).mouseover(function() { 
    tip(tTip); 
}); 

daha iyi bir yolu HTML'nize title özelliklerini koymak olabilir. Bu şekilde, eğer birisi javascript'i kapatabilirse, hala bir araç ipucu alırlar (jQuery ile yaptığınız kadar güzel/esnek olmasa da).

<table id="myTable"> 
    <tbody> 
     <tr> 
      <td title="Tip 1">Cell 1</td> 
      <td title="Tip 2">Cell 2</td> 
     </tr> 
    </tbody> 
</table> 

ve sonra bu kodu kullanın:

$('#myTable td[title]') 
    .hover(function() { 
     showTooltip($(this)); 
    }, function() { 
     hideTooltip(); 
    }) 
; 

function showTooltip($el) { 
    // insert code here to position your tooltip element (which i'll call $tip) 
    $tip.html($el.attr('title')); 
} 
function hideTooltip() { 
    $tip.hide(); 
} 
+0

Bunun işe yaramasını istiyorum, ama nedense ... –

+0

detaylandırır mısınız? ne olur? herhangi bir hata mesajı var mı? aslında "ipucu" denilen bir fonksiyon var mı? – nickf

1
var tTip ="Hello world"; 
$(this).mouseover(function() { tip(tTip); }); 
+0

Bunun işe yaramasını istiyorum, ancak bazı sebeplerden dolayı ... –

-1

bakmak isteyebilirsiniz ve masa üstbilgileriniz değil - daha mantıklı olacaklar - lütfen bunları daha çok anlamlı olan masa hücrelerini İÇERİĞİNE EKLEYİN.

1

grdList - tablo id

td: n'inci-çocuk (5) - Sütun

$('#grdList tr td:nth-child(5)').each(function(i) { 
    if (i > 0) { //skip header 
     var sContent = $(this).text(); 
     $(this).attr("title", $(this).html()); 
     if (sContent.length > 20) { 
      $(this).text(sContent.substring(0,20) + '...'); 
     } 
    } 
}); 
3
$('#grdList tr td:nth-child(5)').each(function(i) { 
    if (i > 0) { //skip header 
     var sContent = $(this).text(); 
     $(this).attr("title", $(this).html()); 
     if (sContent.length > 20) { 
      $(this).text(sContent.substring(0,20) + '...'); 
     } 
    } 
}); 

grdList - tablo id

td: n'inci-çocuk (5) - kolon 5

+0

Bu bana çok yardımcı oldu, ancak '$ ($) yerine başlık için $ (this) .text() 'yi kullanmak daha mantıklı. Bu) .html() ', esp. Hücrelerinizde hiperlink varsa. – Alex

İlgili konular