如果我在页面上重新生成Rails删除链接,请执行以下操作:
<a href="/categories/19" data-method="delete" data-confirm="Are you sure?" ..>Link</a>
当这个页面加载时,Rails中的某些东西必须设置这个链接的行为,因为我得到了一个很好的&#34;你确定吗?&#34;在我承诺删除某些内容之前。但是,当我重新生成HTML时,我猜测我需要重新初始化行为,但我不确定它的来源。任何人都可以告诉我,在生成此HTML链接后是否应该再次调用该函数?感谢
答案 0 :(得分:1)
如果你的意思是“你确定吗?”重新加载页面后,弹出消息无法正常工作,问题可能在于Turbolinks。看看this discussion,看看如何a)。禁用各个链接的Turbolinks; B)。为整个HTML文档禁用它;或c)。完全从你的Rails项目中删除它(可能没有明显的影响)。
答案 1 :(得分:0)
我怀疑您的问题在于您用来设置链接的JavaScript。事件的顺序是这样的:
对此的一个解决方案是确保设置链接的js在一个函数中,当您将新元素添加到页面时可以调用该函数。然后你可以添加一个对js的调用来添加新元素。
这样做的问题是你最终可能会将功能重新添加到已经存在的元素中,这样他们现在就有两个onclick事件,每个事件都做同样的事情(所以它会发生两次)。为了解决这个问题,你的代码可以避免将它添加到已经有该事件的元素中,或者将事件从所有可以获得onclick的元素中删除,然后应用onclick。
或者,您可以设置代码以获取作为选择器的参数,并且它仅将onclick事件应用于具有选择器的元素内的元素**。因此,当你在dom中调用它时,你会传递“body”,然后当你执行它时,你会传递“#id-of-new-div-being-loaded”或类似的东西。
答案 2 :(得分:0)
您可以执行此操作,这将仅关闭此特定网址的turbolinks
<span data-no-turbolink><a href="/categories/19" data-method="delete" data-confirm="Are you sure?" ..>Link</a></span>