Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中增加函数值?_Javascript_Jquery - Fatal编程技术网

如何在javascript中增加函数值?

如何在javascript中增加函数值?,javascript,jquery,Javascript,Jquery,我在javascript中创建了一个函数,我希望当用户单击“下一步”按钮时,它会从以前的值更改div并包含新值。这是我的代码: <div id="new34" style=" width:1028px; height:15px; background#fff; float:left;"> <div id="previous" style="float:left; width:20px;"> <a href="javascript:void(0

我在javascript中创建了一个函数,我希望当用户单击“下一步”按钮时,它会从以前的值更改div并包含新值。这是我的代码:

<div id="new34" style=" width:1028px; height:15px; background#fff; float:left;">
    <div id="previous" style="float:left; width:20px;">
        <a href="javascript:void(0)">
            </a>
    </div>
    <div id="next" style="float:left; width:20px;">
            <a href="javascript:void(0)" onClick="getBusinesses(2)">></a>
    </div>
</div>
我希望当用户单击id=next时,增加值并更改

<div id="new34" style=" width:1028px; height:15px; background#fff; float:left;">
    <div id="previous" style="float:left; width:20px;">
        <a href="javascript:void(0)" onClick="getBusinesses(1)">
            <</a>
    </div>
    <div id="next" style="float:left; width:20px;">
        <a href="javascript:void(0)" onClick="getBusinesses(3)">></a>
    </div>
</div>


等等

使用全局变量并传递它

<script>var pageNumber = 0;</script>
然后是上一次

... onclick="getBusinesses(--pageNumber);" //or: pageNumber--; getBusinesses(pageNumber);

这是因为您必须生成onclick的代码,否则每次都会再次生成onclick的代码,这实际上类似于我所做的(但这是一种更糟糕、更不安全的方法)。

您应该按照建议使用全局计数器,但只能在ajax完成后使用。也许最好将数字存储在链接本身中

<div id="new34" style=" width:1028px; height:15px; background#fff; float:left;">
<div id="previous" style="float:left; width:20px;">
    <a href="javascript:void(0)" data-id="2">
        <</a>
</div>
<div id="next" style="float:left; width:20px;">
        <a href="javascript:void(0)" onClick="getBusinesses(2)" data-id="0">></a>
</div>

希望想法清晰

您需要跟踪“某处”上的页码。在函数调用中硬编码是最糟糕的地方——而且几乎不可能更改,除非您在每次调用中提供新代码(不是不可能,但可能不是您想要的)

我将创建
getbusinesss
函数的“属性”(这是在javascript中创建“静态变量”的技巧)。这个属性,我们称之为
currentBusiness
,将以某个默认值开始。现在,使用
up
down
参数调用函数(
-1
+1
可能最有效);可以递增/递减属性,然后调用函数。它现在可以返回正确的结果:

getBusinesses.page = 1;  // do this once, when the page first loads
将您的功能更改为:

function  getBusinesses(updown){                  
   getBusinesses.page += updown;
   if (getBusinesses.page < 0) {
      // do what you need to do if values are out of range
   }
   $.ajax
   ({
      type: "POST",
      url: "getbusiness.php",
      data: "page="+getBusinesses.page,
      success: function(msg)
      {
         $("#new2").ajaxComplete(function(event, request, settings)
         {
            $("#new2").html(msg);
         });
       }
    });
函数getbusiness(向上向下){
getbusinesss.page+=updown;
如果(getbusinesss.page<0){
//如果值超出范围,请执行需要执行的操作
}
$.ajax
({
类型:“POST”,
url:“getbusiness.php”,
数据:“page=“+getbusinesss.page,
成功:功能(msg)
{
$(“#new2”).ajaxComplete(函数(事件、请求、设置)
{
$(“#new2”).html(msg);
});
}
});
现在,您的按钮分别调用
getBusiness(-1);
getBusiness(1);
。这使您的代码保持干净、可读和可维护。

<div id="new34" style=" width:1028px; height:15px; background#fff; float:left;">
    <div class="navContainer">
        <a class="nav" id="navP" data-go="minus">&lt;</a>
        <a class="nav" id="navN" data-go="plus">&gt;</a>
    </div>
</div>
JS

小提琴:

额外的
有什么用?@austin我认为这些是OP用作“左键”和“右键”的可点击符号。你真的应该读一下->
getBusinesses.page = 1;  // do this once, when the page first loads
function  getBusinesses(updown){                  
   getBusinesses.page += updown;
   if (getBusinesses.page < 0) {
      // do what you need to do if values are out of range
   }
   $.ajax
   ({
      type: "POST",
      url: "getbusiness.php",
      data: "page="+getBusinesses.page,
      success: function(msg)
      {
         $("#new2").ajaxComplete(function(event, request, settings)
         {
            $("#new2").html(msg);
         });
       }
    });
<div id="new34" style=" width:1028px; height:15px; background#fff; float:left;">
    <div class="navContainer">
        <a class="nav" id="navP" data-go="minus">&lt;</a>
        <a class="nav" id="navN" data-go="plus">&gt;</a>
    </div>
</div>
.navContainer {
}
a.nav {
    cursor:pointer;
    border: 1px solid whitesmoke;
    padding: .2em;
    margin: .2em;
    float: left; 

}
$( document ).ready(function() { // Handler for .ready() called.
var intPage = 0; // variable for initial page number

// trigger for next/prev

$( "a[class=nav]" ).click(function( e ) {

    switch($( this ).attr("data-go"))
    {
    case "minus": 
           if (intPage >=1) intPage--;
            getBusinesses(intPage);       
      break;
    default:
            intPage++;
            getBusinesses(intPage);
    }
    console.log(intPage);
});

function getBusinesses(page) {
    $.ajax({
        type: "POST",
        url: "getbusiness.php",
        data: "page=" + page,
        success: function (msg) {
            $("#new2").ajaxComplete(function (event, request, settings) {
                $("#new2").html(msg);
            });
        }
    });
}

});