2012-04-10 2 views
1

Здесь у меня есть фрагмент кода, я хочу показать длинный текст только при нажатии ссылки.Показать текст при нажатии ссылки

<script src="files/jquery.js"></script> 

<center> 

<table border="1" bordercolor="#999999" style="background-color:#00000" cellpadding="0" cellspacing="0" width="750"> 
<tr style="background-color:#00000 height: 50px; width : 250px; font-size: 25px"> 
<td> <center> Product </center> </td> <td> <center> Description </center> </td> <td>  <center> Price </center> </td> 
</tr> 
<tr> 
<td>&nbsp;<a href="#" class="readmore">My product name</a> </td> <td>&nbsp;This is just an introducary description <p class="more">This is a more complex description which should open only when the product name is clicked and here will be also a button to add to cart and some media .</p> <td> <center> <font size="3"> <b> $3 </b> </font> </center> </td> </tr> 
</table> 

</center> 

Так что я не знаю точно, что код, который я должен поставить, чтобы длинный текст скрыт и отображается только тогда, когда моя ссылка название продукта щелкают, может кто-нибудь помочь мне сделать это.

Редактировать: Я хочу, чтобы он хорошо открывался, теперь я вижу, что не знаю, как это объяснить, но я думаю, что должен использовать jQuery, чтобы он был анимирован при открытии^как в http://docs.jquery.com/Tutorials:Live_Examples_of_jQuery в примере B, когда слайд-в в щелчке, текст показывает красиво, что я хочу, чтобы длинный текст делать.


После многих изменений и тестов я сделал это так, что ссылка открыть какой-нибудь текст, при нажатии ничего не меняется в адресной строке, и оно может быть отменено, нажав еще раз, так, чтобы помочь другим членам здесь окончательный код.

<script type='text/javascript'> 
function toggle(id) 
{ 
var el = document.getElementById(id); 
if(el.style.display == 'block') 
el.style.display = 'none'; 
else 
el.style.display = 'block'; 
} 
</script> 

<center> 

<table border="1" bordercolor="#999999" style="background-color:#00000" cellpadding="0" cellspacing="0" width="750"> 
<tr style="background-color:#00000 height: 50px; width : 250px; font-size: 25px"> 
<td> <center> Product </center> </td> <td> <center> Description </center> </td> <td> <center> Price </center> </td> 
</tr> 
<tr> 
<td>&nbsp;<a href="javascript:void(0)" onclick="toggle('hiddentext');">My product name</a> </td> <td>&nbsp;This is just an introducary description <p class="more" id="hiddentext" style="display: none;">This is a more complex description which should open only when the product name is clicked and here will be also a button to add to cart and some media .</p> <td> <center> <font size="3"> <b> $3 </b> </font> </center> </td> </tr> 
</table> 

</center> 

Теперь моя последняя вещь, чтобы сдвинуть текст красиво, как описано в моем редактирования, так что прийти в лучшую сторону, так что если кто-нибудь может помочь мне сделать это, было бы весьма признателен.

+0

Начать с этим - http://api.jquery.com/click/ и посмотреть, если вы можете ориентировать ЧИТАТЬ класс. – Rick

+0

Исправлено, теперь я хотел бы показать текст в стиле nicxe, как то, что я описал в моих праведниках, также чтобы текст был скрыт снова, как только ссылка снова нажата. –

ответ

1

<script> 
 
function toggle(id) { 
 
    var el = document.getElementById(id); 
 
    if(el.style.display == 'block') 
 
     el.style.display = 'none'; 
 
    else 
 
    el.style.display = 'block'; 
 
} 
 
</script> 
 

 
<script src="files/jquery.js"></script> 
 

 
<center> 
 
    <table border="1" bordercolor="#999999" style="background-color:#00000" cellpadding="0"  cellspacing="0" width="750"> 
 
    <tr style="background-color:#00000 height: 50px; width : 250px; font-size: 25px"> 
 
     <td> <center> Product </center> </td> <td> <center> Description </center> </td> 
 
     <td> <center> Price </center> </td> 
 
    </tr> 
 
    <tr> 
 
     <td>&nbsp;<a href="#" class="readmore">My product name</a> </td> 
 
     <td> <a id="test" style="display:none">  &nbsp;This is just an introducary description <p class="more">This  is a more complex description which should open only when the product name is clicked and here  will be also a button to add to cart and some media .</p> </a><td> <center> <font size="3">  <b> $3 </b> </font>   </center> </td> 
 
    </tr> 
 
    </table> 
 
    </center> 
 

 
<a href="#" onclick="toggle('test');">Click to toggle</a>

что-то подобное ^^? Я еще не тестировал.

EDIT: проверено. Оно работает.

+0

Это не сработало и кажется далеким от того, что писали наши друзья. –

+0

это просто javascript и, вероятно, не такой элегантный, как другие решения. – Sam

+0

только что слегка подкорректировал код. и протестировал его. Он работает. – Sam

0
Try this: 

$(function(){ 
    $(".more").hide(); 
    $(".readmore").click(function(){ 
     $(".more").show(); 
    }); 

}); 
+1

'e.preventDefault()' было бы хорошей идеей - прыгать наверх или просто добавлять '#' в адресную строку раздражает/уродливо. – ThiefMaster

1

Это должно работать:

$(document).ready(function() { 
    $(".more").hide(); 
    $(".readmore").click(function(e) { 
     e.preventDefault(); //Prevent default link action 
     $(this).parent().parent().find(".more").toggle(); 
    }); 
}); 
+0

Это не сработало, или я не использовал его правильно, не могли бы вы правильно ввести его в свой полный код, нужна ли ему библиотека jQuery. –

+0

Извините. В моем коде я обнаружил ошибки som. Отсутствует ')' и '.parent()'. Теперь я обновил код. Я добавил переключатель, чтобы щелчок по ссылке переключил текст, показывая и не показывая.Да, код нуждается в jQuery. Я проверил код на вашем HTML, и он работает для меня. – Buddha

+0

Привет, в любом случае спасибо, что я уже работал с другом, который является разработчиком, мы сделали его работа с библиотекой jQuery, хотя в моем ответе есть простой код, теперь мы сотрудничаем, чтобы сделать некоторые улучшения в нашем коде, чтобы он быть окончательным, спасибо, пытаясь помочь мне. –

Смежные вопросы