2014-05-17 168 views
0

我有一個HTML表格,它是由php的MySQL數據庫填充的。我使用Bootstrap提供的css。無論如何,我的問題是,在一些列中,我在每個單元格中都包含一個長文本。我使用的是隱藏內容的css,因爲我想讓我的桌面儘可能緊湊。我嘗試了jQuery的解決方案,但是我對它並不是很滿意,並且它不起作用。我知道有關於此的其他討論,但我無法做出這些工作。在表格單元格中隱藏/顯示長文本HTML

<tbody aria-live="polite" aria-relevant="all"> 
<?php 
$i=0; 
while ($i < $num) { 
    $process=mysql_result($risultati,$i,"process"); 
    $A=mysql_result($risultati,$i,"A"); 
    $B=mysql_result($risultati,$i,"B"); 
    $time_A=mysql_result($risultati,$i,"time_A"); 
    $time_B=mysql_result($risultati,$i,"time_B"); 
    ?> 

    <tr class="odd"> 
    <td><font face="Arial, Helvetica, sans-serif"><?php echo $process;?></font></td> 
    <td ><div id="text"><a class="toggle"><font face="Arial, Helvetica, sans-serif"><?php echo $A;?></font></a></div></td> 
    <td><font face="Arial, Helvetica, sans-serif"><?php echo $B;?></font></td> 
    <td><font face="Arial, Helvetica, sans-serif"><?php echo $time_A;?></font></td> 
    <td><font face="Arial, Helvetica, sans-serif"><?php echo $time_B;?></font></td> 
    </tr> 
    <?php 
    $i++; 
} 
?> 
</tbody> 

這裏的腳本:

<script> 

    $('.toggle').click(function(){ 
     var target = $(this).closest('#text'); 
     if (target.hasClass('expanded')) { 
      target.removeClass('expanded'); 
      $(this).text('(expand)'); 
     } else { 
      target.addClass('expanded'); 
      $(this).text('(collapse)'); 
     } 
    }); 

    </script> 

而這裏的CSS:

#text { 
    white-space:nowrap; 
    overflow:hidden; 
    width:300px; 
    text-overflow:ellipsis; 
    -o-text-overflow:ellipsis; 
} 
#text.expanded { 
    max-height:none; 
} 
+0

在td title屬性中設置實際的完整值,它將在鼠標懸停時顯示。 – malkam

+1

你在循環中使用id =「text」,這會導致很多元素具有相同的id。這可能會打破你的jQuery調用,而不是使用類 – Michiel

+3

什麼是標籤???請改用css! – Michiel

回答

3

考慮OP的有關要求,複製/粘貼單元格的內容,把它放在一個自舉酥料餅的數據內容屬性和應該解決的問題發表評論:

HTML:

<td> 
    <a href="#" class="btn btn-link too-long" title="Optional Title" 
    data-content='Content that is too long to display because there is too much of it to fit in your table cell. But it all fits in this popover!' 
    data-placement="bottom"> 
    Content that is too long to display...</a> 
</td> 

JS:

$('#too-long').popover() 

實施例:http://jsfiddle.net/MjsAp/3/

0

試試這個:

變化id="test"在你的HTML class="text"

,改變你的qQuery:

var target = $(this).closest('#text'); 

var target = $(this).closest('.text'); 

jQuery的不知道哪個#text你指的是因爲#text應該是唯一的。

+1

它不起作用。我應該更改CSS廣告中的某些內容嗎? – giogix

+0

你想要發生什麼?我不認爲你真正想要實現的是如此明顯。 – bestprogrammerintheworld

+1

因爲我使用隱藏(與溢出:隱藏)我的文本的CSS,我希望當我點擊單元格中的文本,它顯示了單元格中包含的所有文本。例如,你可以考慮phpmyadmin,這讓我很傷心。可能是我在嘗試我的解決方案時犯了一個大錯,因爲我試圖解釋的看起來更像是一個彈出窗口。 – giogix

0

您可以將單元格的內容複製到title屬性中。用戶在鼠標懸停時將內容看作工具提示。

<td> 
    <div id="test" title="Cell contents that are very long ..."> 
    Cell contents that are very long... 
    </div> 
</td> 
+0

好的。但我需要選擇那個文本來複制它,當我需要它時。用你的解決方案我不能那樣做。 – giogix

+0

啊,是的,這很棘手。也許是一個彈出窗口:http:// getbootstrap。com/javascript /#popovers –

+0

爲什麼不把數據屬性值(以及標題屬性) – bestprogrammerintheworld

相關問題