JQuery динамическое разбиение на страницы для комментариев мнения экспертов - PullRequest
1 голос
/ 13 июля 2009

Я пытаюсь создать динамическую систему разбивки на страницы для своего сайта, и я решил использовать функцию обратного вызова ajax для динамического отображения комментариев, когда пользователь нажимает на различные элементы страницы. Поэтому я привожу приведенный ниже код в качестве примера того, как я это делаю ... Я хотел бы спросить вас, ребята, правильно ли я это делаю или есть ли лучший способ сделать это, пожалуйста, укажите правильное направление:

JavaScript:

$(document).ready(function(){
$(".pages").click(function(){
var pageno=$(this).attr("id").slice(4,8);//slicing out numbers from the id i.e "1" from "page1"
$.get("news.php", { pageno: pageno},
    function(data){
     $("#comments").html(data);
    });
});
});

HTML:

<div>
<span id="page1" class="pages" >1</span>
<span id="page2" class="pages" >2</span>
<span id="page3" class="pages" >3</span>
</div >
<div id="comments">
</div>

PHP:

<div><?php echo $_REQUEST['pageno'];?></div> 

Ответы [ 2 ]

1 голос
/ 13 июля 2009
$(document).ready(function(){
    var isWorking = false;
    $(".pages").click(function(){
        if ( isWorking ) 
        {
            alert('Please wait for your preceeding request to finish.');
            return false;
        }
        isWorking = true;
        var pageno = $(this).text();
        $.get("news.php", { pageno: pageno},
            function(data){
                $("#comments").html(data);
                isWorking = false;
            });
    });
});
  1. Похоже, что вы можете просто использовать текстовое содержимое диапазона для номера страницы (см. Изменение .text ()).

  2. Возможно, вы захотите запретить пользователям загружать слишком много страниц одновременно (см. Переменную isWorking, которая не позволяет пользователям загружать более 1 страницы одновременно).

1 голос
/ 13 июля 2009

Не думаю, что это неразумно, хотя я бы упомянул две мысли.

Во-первых, я думаю, что было бы неплохо динамически назначать обработчики кликов, а не вставлять в HTML «click =» (это является сердцем «прогрессивного улучшения»). Hoerver, вы можете использовать другой тип селектора. Поиск группы элементов по классам является одним из медленных способов определения элементов, особенно если страниц может быть много. Вы можете поместить их все в div и сделать $ ("# myDiv span"). Click (). Это должно быть намного быстрее.

Во-вторых, предположение о том, что номер страницы всегда начинается с четвертого символа идентификатора диапазона, кажется немного хрупким. Может быть, лучше просто сделать id самим номером страницы.

...