why*_*why 5 ujs ruby-on-rails-3.2
在我的一个项目中,代码:
= link_to "add", new_me_category_path, class: "btn btn-success", remote: true
Run Code Online (Sandbox Code Playgroud)
可以正确加载远程表单.
但有些人无法工作,浏览器没有执行responese js代码.我需要像这样添加"data:{type:"script"}":
= link_to "add", new_me_category_path, class: "btn btn-success", remote: true, data: {type: "script"}
Run Code Online (Sandbox Code Playgroud)
我想知道原因.
我不是 JS 专家,也不了解 Ruby,但我认为:
当数据类型设置为script- 下载的代码将立即加载并执行。
当数据类型为默认 ( html) 时 - 下载的代码仅加载到浏览器中。您必须“手动”执行它(例如通过调用某个函数)。
如果您的代码只有一些与先前加载的代码一起使用的函数 - 这些函数将可用并且可以工作(当数据类型为 时html)。
如果您的代码中有已定义的事件 - 它们将不起作用,因为它们未初始化,因为代码未执行。
如果我的解释不好 - 您可以阅读有关jQuery.get()和jQuery.getScript()方法之间的差异。