【问题标题】:Why does the confirm dialog require two clicks with ujs?为什么确认对话框需要两次点击 ujs?
【发布时间】:2012-07-29 13:39:02
【问题描述】:

最初没有确认消息。
我发现将//= query_ujs 添加到我的资产歧管解决了这个问题。 但是......现在我发现确认对话框需要“2次点击”才能使用(取消或确定按钮)。

我的清单如下所示:

//= require jquery
//= require jquery-ui
//
// ujs needed for delete confirm dial boxes.
//= require jquery_ujs

无论是取​​消还是确定,都需要点击两次。 删除按钮的 Rails 代码

= button_to '', schedule_path(schedule), 
:method => 'delete', 
:confirm => 'Are you sure you want to delete this schedule?', 
:class => 'deleteicon', 
:title => "Delete #{name}"

生成的 HTML:

<form action="/schedule/719" class="button_to" method="post">
  <div>
    <input name="_method" value="delete" type="hidden">
    <input class="deleteicon" data-confirm="Are you sure you want to delete this schedule?" title="Delete Shedule A" value="" type="submit">
    <input name="authenticity_token" value="wpcofEiLu6NXymHj289XGahTTT1XqNI56XvBlAFq2G8=" type="hidden">
  </div>
</form>

页面标题的js:

<script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-ui.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>

【问题讨论】:

  • 你用jquery还是什么的?也许它被加载了两次。
  • 也许但是我找不到它的问题所在。我尝试更改列出 js 库的顺序,并尝试注释掉其他各种 js 库并重新编译资产,但仍然没有乐趣。
  • 您是否尝试删除 jquery-ui? github.com/rails/jquery-ujs
  • +1 账单。是的,好主意,我尝试删除它,我还尝试删除 jquery 引用本身,只留下 //= 为 jquery_ujs 但这些都不起作用。好主意。
  • 你可以尝试制作弹出窗口,或者任何它是可移动的,看看是否有两个:) 或者只是检查 dom

标签: jquery ruby-on-rails ruby ajax


【解决方案1】:

答案是资产编译。

我们的系统设置为在运行时自动编译资产。

我(错误地)也做了一个rake assets:precompile,所以我基本上复制了 js 并创建了副本。我注意到当时 theta 预编译它创建了很多文件,这是一个危险信号,说明为什么事情已经改变并且双击已经开始(尽管当使用预编译 is 时,它有它的位置)。

感谢 git,我能够恢复为 master,使用新的分支名称重新分支,而无需执行预编译步骤。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-19
    • 1970-01-01
    相关资源
    最近更新 更多