Javascript 没有执行 Rails 的回调?
Javascript not executing on callback for Rails?
我有两个并排的回调函数,它们似乎执行完全相同的事情。但是,第一个有效,第二个无效 - 它甚至不执行 javascript,尽管文件已呈现。
这是不起作用的功能 - 部分:
<%= button_to 'Delete', todo_path(@item.id, :format => :js, ),
:method => :delete,
:remote => true,
:form => { "data-type" => "js" },
:form_class => "btn btn-danger btn-xs" %>
在控制器中:
def destroy
@item_id = params[:id]
if item = Item.find_by_id(@item_id)
item.destroy
end
respond_to do |format|
format.js {}
end
end
关于回调(在todos/destroy.js.erb):
alert("foobaz");
console.log("baz-foo");
$("#item_<%= @item_id %>").remove();
方法和部分已呈现,但 javascript 未执行(没有警报,没有控制台日志,也没有删除项目):
Started DELETE "/todos/73.js" for ::1 at 2015-04-20 20:24:37 -0700
Processing by TodosController#destroy as JS
Parameters: {"authenticity_token"=>"sKfPWYP4owepOSDKBtTAoUMN4cVez/d5rz7k+UV0BY9Eu3Qkv/loiSpg4E6hN8Jmqih0+1v0WUROjL8h8IBnyQ==", "id"=>"73"}
Item Load (4.5ms) SELECT `items`.* FROM `items` WHERE `items`.`id` = 73 LIMIT 1
Rendered todos/destroy.js.erb (0.4ms)
想法?
更新
我刚刚添加了一些 Ruby 调试:
<% print "HERE I AM" %>
并打印出来。所以模板正在渲染,只是 javascript 没有被调用。仍然不是解决方案:(
此外,在我所知的所有方面,它看起来 只是 与其他函数一样,除了它是在部分中呈现的。
非常感谢fylooi的调试建议!事实证明 javascript 正在执行,但只是引用了页面上的错误元素。强烈建议使用 Firebug(不是内置调试器)。谢谢!
我有两个并排的回调函数,它们似乎执行完全相同的事情。但是,第一个有效,第二个无效 - 它甚至不执行 javascript,尽管文件已呈现。
这是不起作用的功能 - 部分:
<%= button_to 'Delete', todo_path(@item.id, :format => :js, ),
:method => :delete,
:remote => true,
:form => { "data-type" => "js" },
:form_class => "btn btn-danger btn-xs" %>
在控制器中:
def destroy
@item_id = params[:id]
if item = Item.find_by_id(@item_id)
item.destroy
end
respond_to do |format|
format.js {}
end
end
关于回调(在todos/destroy.js.erb):
alert("foobaz");
console.log("baz-foo");
$("#item_<%= @item_id %>").remove();
方法和部分已呈现,但 javascript 未执行(没有警报,没有控制台日志,也没有删除项目):
Started DELETE "/todos/73.js" for ::1 at 2015-04-20 20:24:37 -0700
Processing by TodosController#destroy as JS
Parameters: {"authenticity_token"=>"sKfPWYP4owepOSDKBtTAoUMN4cVez/d5rz7k+UV0BY9Eu3Qkv/loiSpg4E6hN8Jmqih0+1v0WUROjL8h8IBnyQ==", "id"=>"73"}
Item Load (4.5ms) SELECT `items`.* FROM `items` WHERE `items`.`id` = 73 LIMIT 1
Rendered todos/destroy.js.erb (0.4ms)
想法?
更新
我刚刚添加了一些 Ruby 调试:
<% print "HERE I AM" %>
并打印出来。所以模板正在渲染,只是 javascript 没有被调用。仍然不是解决方案:(
此外,在我所知的所有方面,它看起来 只是 与其他函数一样,除了它是在部分中呈现的。
非常感谢fylooi的调试建议!事实证明 javascript 正在执行,但只是引用了页面上的错误元素。强烈建议使用 Firebug(不是内置调试器)。谢谢!