如何在javascript中增加函数值?
我在javascript中创建了一个函数,我希望当用户单击“下一步”按钮时,它会从以前的值更改div并包含新值。这是我的代码:如何在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
<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"><</a>
<a class="nav" id="navN" data-go="plus">></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"><</a>
<a class="nav" id="navN" data-go="plus">></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);
});
}
});
}
});