0

我正在尝试使用 javascript/Jquery.ajax 请求来更新带有 ruby​​ on rails 中的部分模板的页面。部分被称为 _promotions.html.erb 我是 javascript 和 JQuery 的菜鸟,不太了解语法。从要更新的页面:

<div id="promotions"></div>
<script type="text/javascript"> 
  jQuery.ajax({
    url: "/promotions", // it routes to the following def
    type: "GET",
    dataType: "html"
    success: $(function(data){$('#promotions').write(data)})
  });
</script>

从处理响应的 rails 控制器:

def promotions
  @items = Item.search("", 8) #the partial needs this variable during preprocessing
  respond_to do |format|
    format.html { render :partial => "promotions", :layout => false, }
  end
end

我想将 _promotions.html.erb 渲染到页面中。最终,我希望能够定期重新呈现该 div 的内容而不刷新整个页面(因此 jquery 调用而不是通过 rails 预处理)。我哪里出错了?

4

1 回答 1

0
jQuery.ajax({
  url: "/promotions",
  type: "GET",
  dataType: "html", // You missed a comma.
  success: function(data){$('#promotions').html(data)}
});

没有 jQuery.write()方法。
另外,不要像以前那样包裹function(data){$('#promotions').html(data)}$(...)

$('#promotions')返回 id Promotions 的 DOM 元素$(function() {})仅用于绑定在文档准备好时运行的函数

于 2013-04-24T07:58:38.110 回答