Postback не выполняет код в jQuery - PullRequest
0 голосов
/ 10 июля 2009

У меня есть следующий скрипт, который сначала показывает пользователю только первый параграф страницы. Когда пользователь нажимает «Shw More», отображается остальная часть содержимого.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="jquery-1.3.2.js" type="text/javascript"></script>
     <script language="javascript" type="text/javascript">
         $(function() {
             $("#someDiv p:not(:first)").hide();
             $("#someDiv p:first").after('<a id="show" href="#">Show more</a>');

             $("#show").click(function(evt) {
                 evt.preventDefault();
                 //window.location.reload(true);
                 $(this).hide();

                 $("#someDiv p").show();
             });

         });
</script>
</head>
<body>
<div id="someDiv">
<p>LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRETLOREM IPSUM TORRET
LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRETLOREM IPSUM TORRETLOREM IPSUM TORRET
LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRETLOREM IPSUM TORRET
LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRETLOREM IPSUM TORRETLOREM IPSUM TORRET
LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRETLOREM IPSUM TORRET
LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRETLOREM IPSUM TORRETLOREM IPSUM TORRET
LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRETLOREM IPSUM TORRET
LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRETLOREM IPSUM TORRETLOREM IPSUM TORRET
</p>
<p>LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRETLOREM IPSUM TORRET
LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRETLOREM IPSUM TORRETLOREM IPSUM TORRET
LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRETLOREM IPSUM TORRET
LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRETLOREM IPSUM TORRETLOREM IPSUM TORRET
LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRETLOREM IPSUM TORRET
LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRETLOREM IPSUM TORRETLOREM IPSUM TORRET
LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRETLOREM IPSUM TORRET
LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRETLOREM IPSUM TORRETLOREM IPSUM TORRET
</p>
<p>LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRETLOREM IPSUM TORRET
LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRETLOREM IPSUM TORRETLOREM IPSUM TORRET
LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRETLOREM IPSUM TORRET
LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRETLOREM IPSUM TORRETLOREM IPSUM TORRET
LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRETLOREM IPSUM TORRET
LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRETLOREM IPSUM TORRETLOREM IPSUM TORRET
LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRETLOREM IPSUM TORRET
LOREM IPSUM TORRET LOREM IPSUM TORRET LOREM IPSUM TORRETLOREM IPSUM TORRETLOREM IPSUM TORRET
</p>

</div>
</body>
</html>

Этот код, приведенный знаменитым DaveWard, работает абсолютно нормально. Однако теперь я хочу, чтобы этот код работал с этой строкой без комментариев

window.location.reload(true);

Может кто-нибудь сказать мне, как добиться того же результата, когда строка выше без комментариев. Я хочу, чтобы обновление происходило, когда пользователь нажимает «ShowMore».

Также обратите внимание, что этот код jQuery будет храниться в отдельном файле и использоваться для нескольких страниц. URL страницы в формате http://www.xyz.com/displaynews?newsid=x

1 Ответ

0 голосов
/ 10 июля 2009

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

$("#show").click(function(evt) {
    evt.preventDefault();
    window.location = window.location + "#showmore";
}

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

if (window.location.indexOf("#showmore") == -1) {
    $("#someDiv p:not(:first)").hide();
    $("#someDiv p:first").after('<a id="show" href="#">Show more</a>');
}

И заверните скрытый код в чек, чтобы увидеть, следует ли вам скрывать текст.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...