首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Quicksand请求的jQuery插件?

如何使用Quicksand请求的jQuery插件?
EN

Stack Overflow用户
提问于 2012-04-17 09:24:15
回答 1查看 401关注 0票数 0

我试图使用Quicksand插件来修饰Rails中AJAX调用的响应:

链接:

代码语言:javascript
复制
<% Project.services.each_with_index do |service, index| %>
  <%= link_to_function(service, "regatherProjects('#{service}', #{index})", :id => "service_link_#{index}") %>
  <%= " / " if !index.eql?(Project.services.length - 1) %>
<% end %>

联署材料:

代码语言:javascript
复制
function regatherProjects(service_name, service_id) {
  $.get("/index_project_update", { service: service_name }, function(data) {
    $('#home_projects').quicksand($(data), {
      adjustHeight: 'dynamic'
    });
  });
  $('#home_services').find('a').removeClass("on");
  $('#service_link_' + service_id).addClass("on");
};

主计长:

代码语言:javascript
复制
def index_project_update
  if params[:service] && !params[:service].blank?
    @projects = Project.highlighted.where(:service => params[:service])
  else
    @projects = Project.highlighted
  end
end

查看:

代码语言:javascript
复制
$("#home_projects").replaceWith("<%= j(render('projects')) %>")

项目:

代码语言:javascript
复制
<div id="home_projects">
  <% if @projects.empty? %>
    <p>No projects. <%= link_to_function("View All", "regatherProjects('')") %>.</p>
  <% else %>
   <ul class="all_projects">
     <% @projects.each_with_index do |project, index| %>
       <li data-id="<%= project.customer.name.underscore.downcase %>_<%= project.name.underscore.downcase %>">
       <%= link_to(image_tag(project.project_images.first.image.home), project) %>
       </li>
     <% end %>
   </ul>
  <% end %>
</div>

认为的问题是,AJAX请求返回的数据(参见下面)并不是所期望的格式,但我不知道如何从响应中推断相关信息。来自AJAX请求的响应如下:

代码语言:javascript
复制
$("#home_projects").replaceWith("<some><html><that><i><need>")

因此,问题在于,当它应该使用替换的HTML时,它使用上面的代码作为Quicksand的目标代码:

代码语言:javascript
复制
<some><html><that><i><need>

AJAX请求运行得很好,但是我需要将Quicksand集成到这里。

我需要:

  • 是这样做的更好的方法;
  • 是一种将上述代码中的replaceWith()参数外推用作Quicksand.

的目的地代码的方法。

如果我遗漏了你认为需要帮助的任何信息,请问。

这是我在堆栈溢出问题上提出的第一个问题,所以我有义务为任何误用行为道歉。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-04-19 08:23:41

如果有人遇到类似的问题,那么在Chrome、火狐、IE9、IE8和IE7中,以下内容对我都有帮助。

链接:

代码语言:javascript
复制
<% Project.services.each_with_index do |service, index| %>
  <%= link_to_function(service, "regatherProjects('#{service}', #{index})", :id => "service_link_#{index}") %>
  <%= " / " if !index.eql?(Project.services.length - 1) %>
<% end %>

联署材料:

代码语言:javascript
复制
function regatherProjects(service_name, service_id) {
  $.get("/index_project_update.html", { service: service_name }, function(data) {
    $('.all_projects').quicksand($(data).find('li'), {
      adjustHeight: 'dynamic'
    });
  });
  $('#home_services').find('a').removeClass("on");
  $('#service_link_' + service_id).addClass("on");
};

路由:

代码语言:javascript
复制
match '/index_project_update' => 'application#index_project_update', :defaults => { :format => 'html' }

主计长:

代码语言:javascript
复制
def index_project_update
  if params[:service] && !params[:service].blank?
    @projects = Project.highlighted.where(:service => params[:service])
  else
    @projects = Project.highlighted
  end
  render :layout => false
end

查看:

代码语言:javascript
复制
<%= render('application/index/projects') %>

项目:

代码语言:javascript
复制
<div id="home_projects">
  <% if @projects.empty? %>
    <ul class="all_projects">
      <li data-id="project">No projects. <%= link_to_function("View All", "regatherProjects('')") %>.</li>
    </ul>
  <% else %>
    <ul class="all_projects">
      <% @projects.each_with_index do |project, index| %>
         <li data-id="project_<%= project.id %>">
           <%= link_to(image_tag(project.project_images.first.image.home, :alt => (project.customer.name + " - " + project.name), :title => (project.customer.name + " - " + project.name)), project) %>
         </li>
      <% end %>
    </ul>
  <% end %>
</div>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10188545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档