递增div数据值,然后在coffeescript中重新设置它

时间:2014-04-04 18:21:44

标签: javascript jquery html css coffeescript

我有这个coffeescript代码:

 $(document).ready ->
    setInterval refresh_table, 1000

 refresh_table = ->
    $.ajax 
      url: "/ac_units/refresh_table"
      format: "js"
      type: "POST"
      data: { pointer:$('#pointer').data('pointer'), ideal:$('#ideal').val() ,      current:$('#current').val() }

此代码有效。

我想为此代码添加功能。         1)我想在指针发送到上面的服务器之前递增指针         2)我想将更新的指针值设置为div的数据         3)我想将更新的指针发送到服务器

我尝试了以下方法来完成上述功能:

$(document).ready ->
  setInterval refresh_table, 1000

refresh_table = ->
  a = $("#pointer").data("pointer")
  $("#pointer").data "pointer", a++
  $.ajax
url: "/XXX/refresh_table"
format: "js"
type: "POST"
data: { pointer:$('#pointer').data('pointer'), abc:$('#abc').val() , efg:$('#efg').val() }

但是这没用。 没有增量发生。 以下是我的控制台的一些输出:

 Processing by XXXController#refresh_table as */*
 Parameters: {"pointer"=>"0", "abc"=>"73", "efg"=>"79"}
 Received params = {"pointer"=>"0", "abc"=>"73", "efg"=>"79", "controller"=>"xxx", "action"=>"refresh_table"}
 ptr = 0


 Started POST "/XXX/refresh_table" for 127.0.0.1 at 2014-04-04 14:15:44 -0400
 Processing by XXXController#refresh_table as */*
 Parameters: {"pointer"=>"0", "abc"=>"73", "efg"=>"79"}
 Received params = {"pointer"=>"0", "abc"=>"73", "efg"=>"79", "controller"=>"xxx", "action"=>"refresh_table"}
 ptr = 0

我做错了什么?为什么变量没有递增?有人可以建议吗?

由于


尝试此代码以回应以下答案:

 $(document).ready ->
    setInterval refresh_table, 1000

 refresh_table = ->
    a = $("#pointer").data("pointer")
    x = ++a
    $("#pointer").data "pointer", x
    $.ajax 
      url: "/ac_units/refresh_table"
      format: "js"
      type: "POST"
      data: { pointer:x, ideal:$('#ideal').val() , current:$('#current').val() }

但指针值仍为0

1 个答案:

答案 0 :(得分:0)

您正在使用a++。您需要++aa + 1

a++在递增之前评估a的值,以便将您设置为" new" data属性。

...简单地

a = 1
x = a++
console.log(a) # 2
console.log(x) # 1

这会保存a的值(除了1),然后将a增加到2,然后将x设置为已保存的值{ {1}},a

基本上,您的代码保证数据属性永远不会更改,因为它始终在1递增之前将pointer设置回当前值:

a

此代码通过在 a = $("#pointer").data("pointer") $("#pointer").data "pointer", a++ 递增后将其设置为a 的值来正确递增属性。

a