【问题标题】:jquery: I can only use a function once,"is not a function" errorjquery:我只能使用一次函数,“不是函数”错误
【发布时间】:2017-02-22 20:59:53
【问题描述】:

我正在做一个寻呼机,我创建了一个函数,该函数在加载文档后被调用,但由于某种原因,当我第二次尝试使用它时,我收到错误“不是函数”,我想知道为什么会这样代码如下:

启动页面时加载此文档

$(function(){
    var textoPag=$("#textoPag").val();
    var tipoBusq=$("#tipoBusq").val();


        pagination(1);

       function ajax_start(){

            $body = $("body");
            $body.addClass("loading");
        }

        function ajax_stop(){
            $body = $("body");
             $body.removeClass("loading");
        }


    function pagination(partida){
        var url = MODELO+'paginacion.php';
        params={act:"paginacion",
                part:partida,
                palabra:textoPag
                }
        $.ajax({
            type:'POST',
            url:url,
            data:params,
            success:function(data){
                var array = eval(data);
                console.log(array[1]);
                $("#contePag").append(array[1]);
                //$('#agrega-registros').html(array[0]);
                $('#pagination').html(array[0]);
            }
        });
    }

    });

调用pager的代码如下

switch ($actividad) {
            case 'paginacion':
                $paginaActual = $_POST['part'];
                $palabra=$_POST['palabra'];
                $string = SERVER."paginador";
                $data = file_get_contents($string);
                $json = json_decode($data,true);


                if ($json["success"]==true)
                {
                 $nroPag=$json["cont"]; 
                 $nroLotes = 2;
                 $nroPaginas = ceil($nroPag/$nroLotes);
                 $lista = '';
                 $tabla = '';
                }
                if($paginaActual > 1){
                $lista = $lista.'<li><a href="javascript:pagination('.($paginaActual-1).');">Anterior</a></li>';
                }
        for($i=1; $i<=$nroPaginas; $i++){
            if($i == $paginaActual){
                $lista = $lista.'<li class="active"><a href="javascript:pagination('.$i.');">'.$i.'</a></li>';
            }else{
                $lista = $lista.'<li><a href="javascript:pagination('.$i.');">'.$i.'</a></li>';
            }
        }
        if($paginaActual < $nroPaginas){
            $lista = $lista.'<li><a href="javascript:pagination('.($paginaActual+1).');">Siguiente</a></li>';
        }

将功能分页留在就绪事件之外并对其进行初始化,一切正常,但在这种情况下,我无法恢复输入的值

$(document).ready(pagination(1));
  $(function(){
    ............
    ...........
   });
   function pagination(partida){
    var url = MODELO+'paginacion.php';
    params={act:"paginacion",
            part:partida,
            palabra:textoPag
            }
    $.ajax({
        type:'POST',
        url:url,
        data:params,
        success:function(data){
            var array = eval(data);
            console.log(array[1]);
            $("#contePag").append(array[1]);
            //$('#agrega-registros').html(array[0]);
            $('#pagination').html(array[0]);
        }
    });
}

我不明白为什么我在第一种情况下不能继续使用分页功能

【问题讨论】:

  • var textoPag=$("#textoPag").val();(和下一行)也放入document.ready()
  • 或获取这些输入的值 inside function pagination(..)
  • 如果您添加了问题的演示,我可以提供进一步的帮助。

标签: javascript php jquery pager


【解决方案1】:

试着把你的函数变成一个全局变量:

  var pagination;

  $(function(){
    ............
    ...........
   });
   var pagination = function (partida){
    var url = MODELO+'paginacion.php';
    params={act:"paginacion",
            part:partida,
            palabra:textoPag
            }
    $.ajax({
        type:'POST',
        url:url,
        data:params,
        success:function(data){
            var array = eval(data);
            console.log(array[1]);
            $("#contePag").append(array[1]);
            //$('#agrega-registros').html(array[0]);
            $('#pagination').html(array[0]);
        }
    });
}

$(document).ready(pagination(1));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-12
    • 1970-01-01
    • 2018-07-13
    • 2023-02-12
    • 1970-01-01
    • 2011-08-31
    • 1970-01-01
    相关资源
    最近更新 更多