即使代码仅提交一次,CoffeeScript也会将提交操作呈现两次

时间:2014-06-12 17:24:37

标签: ruby-on-rails coffeescript

我正在使用Rails 4进行Agile Web开发,第11.5节教授如何使图像可点击。我接着是课程,下面是我的store.js.coffee

$(document).on "ready page:change", ->
  $('.store .entry > img').click ->
    $(this).parent().find(':submit').click()

以上将允许我点击商店页面上的图片将特定商品添加到购物车,但它会“点击”两次,因此将两个商品添加到购物车而不是仅一个。常规的“添加到购物车”按钮工作正常,所以我不太确定问题出在哪里。

我认为上面的代码不足以查明问题,但我不知道要发布的代码的其他部分,所以如果您需要其他信息,请告诉我。谢谢!

3 个答案:

答案 0 :(得分:7)

错误发生在脚本的第一行。

您需要将元素准备好页面:更改与昏迷分开。

试试这样:

$(document).on "ready, page:change", ->

它应该有用。

答案 1 :(得分:0)

我猜您的click可能会在.store.entryimg上触发另一次点击操作。修复方法是阻止点击的默认操作。

尝试使用:

$(document).on "ready page:change", ->
  $('.store .entry > img').click (event) ->
    event.preventDefault()
    $(this).parent().find(':submit').click()

答案 2 :(得分:0)

使用vinibol12的逗号的完整代码段是:

$(document).on "ready, page:change", ->
    $('.store .entry > img').click ->
        $(this).parent().find(':submit').click()

我确认这解决了我在agile-web-development-with-rails-4_p2_0第11.5节中的双重提交问题