Rails newbe here。我有一個做AJAX查詢服務器鏈接:Rails 3中的Ajax成功事件
<%= link_to g.name, g, :class => 'link link-to-gallery', :remote => true %>
JS查看從部分負荷數據:
$('#content').html('<%= escape_javascript render("layouts/galleries/show") %>');
那與模型運行,並呈現控制器HTML和JS:
class GalleriesController < ApplicationController def show @galleries = Gallery.all @gallery_to_show = Gallery.find(params[:id]) respond_to do |format| format.html format.js end end end
阿賈克斯工作正常,但我試圖把阿賈克斯完成後的回調:
jQuery(function() { $(".link-to-gallery").bind("ajax:complete", function() { alert(1) }); });
和警報從不顯示。我究竟做錯了什麼? Rails的版本是3.2.11,紅寶石版本1.9.3p194
更新:當我使用此代碼
jQuery(function() { $(".link-to-gallery") .on("ajax:before", function() { alert("before") }) .on("ajax:complete", function() { alert("complete") }); });
「之前」警示火災,但只有一次。如果我再次按下,我一無所獲。但阿賈克斯仍然有效。
您是否嘗試使用'on',jQuery 1.7+中的首選機制? –
您的回調代碼是否被js視圖中的呼叫覆蓋? 另外@戴夫牛頓提出了一個很好的觀點。你應該使用'on'來代替jquery的'bind'來處理事件。 – bullfrog
試過這個。與「綁定」一樣。但我有一些新的信息。 – franza