Element.update is not a function [Rails 3 + JQuery]

我与影子孤独终老i 提交于 2019-11-28 01:26:08

问题


I'm attempting to integrate JQuery into Rails 3. I've downloaded the rails.js file from http://github.com/rails/jquery-ujs and have included it in my app. I've also include JQuery.

But when I attempt to do a simple page.replace like so:

render :update do |page|
  page.replace_html "my_div", :partial => "my_partial", :locals => {:mylocal => mylocal}
end

I get the following error thrown from the javascript executing:

RJS error:
TypeError: Element.update is not a function

Element.update("my_div", "mypartialdata");

Any ideas?


回答1:


As others have said, page.replace, in rails 2, references Element.update.

If you want the same helpers available to you in Rails 3 with jQuery, check out jrails:

http://github.com/aaronchi/jrails

In case you want to use the assert_select_rjs test helpers in Rails 3, go grab the patched version here:

https://github.com/theworkinggroup/jrails




回答2:


page.replace will call prototype function Element.update. Have you got prototype included in your page?




回答3:


If it really is just the Element.update thing using render(:update) in rails 3 with jQuery, this little js code snippet should do it:

Element = function(){}
Element.update = function(id,html){$('#'+id).html(html);}

parsing this JS code should help. I've put it at the end of the jquery_ujs.js file.




回答4:


I figured out the problem. Apparently with JQuery, you cannot use the rails helpers like "replace_html" or "insert_html". You merely have to do page << "//Jquery code".



来源:https://stackoverflow.com/questions/3596431/element-update-is-not-a-function-rails-3-jquery

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!