Jquery AJAX无法在表上工作

Jquery AJAX无法在表上工作,jquery,ruby-on-rails,ajax,Jquery,Ruby On Rails,Ajax,试图通过在我的表中包含ajax使我的应用程序更具功能性。我使用本教程创建了我的代码,并且非常非常接近于说明 我正在使用IE8(什么可能是问题的原因,因为它总是问题的原因)和Rail4 Myapplication.js // This is a manifest file that'll be compiled into application.js, which will include all the files // listed below. // // Any JavaScript/Co

试图通过在我的表中包含ajax使我的应用程序更具功能性。我使用本教程创建了我的代码,并且非常非常接近于说明

我正在使用IE8(什么可能是问题的原因,因为它总是问题的原因)和Rail4

Myapplication.js

// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// compiled file.
//
// Read Sprockets README (https://github.com/sstephenson/sprockets#sprockets-directives) for details
// about supported directives.
//
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require bootstrap
//= require_tree .


    $(function () {
      // Sorting and pagination links.
      $('#pimps th a, #pimps .pagination a').live('click', function () {   
        $.getScript(this.href);   
        return false;   
        });

      // Search form.
      $('#pimps_search').submit(function () {   
        $.get(this.action, $(this).serialize(), null, 'script');   
        return false;
     });   
    }) 
index.js.erb

$('#pimps').html('<%= escape_javascript(render(:partial =>"pimps")) %>'));  
<h1>Improvements: Overview</h1>

<%= form_tag pimps_path, :method => 'get', :id => "pimps_search" do %>   
  <%= hidden_field_tag :direction, params[:direction] %>   
  <%= hidden_field_tag :sort, params[:sort] %> 
  <p>   
    <%= text_field_tag :search, params[:search] %>   
    <%= submit_tag "Search", :title => nil %>   
  </p>   
<% end %>

<div id="pimps"><%= render 'pimps' %></div>  


<div class="row">
    <div class="col-md-10"><%= will_paginate @pimps %></div>
    <div class="col-md-2"><%= button_to 'New Improvement', new_pimp_path, :method => :get %></div>
</div>
<!DOCTYPE html>
<html lang="en">
<head>

  <title>Improvement</title>

  <%= stylesheet_link_tag    "application", media: "all", "data-turbolinks-track" => true %>
  <%= javascript_include_tag "application", "data-turbolinks-track" => true %>
  <%= csrf_meta_tags %>
  <meta http-equiv="X-UA-Compatible" content="IE=edge" />

  <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
  <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
  <!--[if lt IE 9]>
    <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
    <script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
  <![endif]-->


</head>
<body>



<%= yield %>

</body>
</html>
有人知道这里有什么问题吗?如果是IE8,有没有一种方法可以集成AJAX


向我的朋友们问好

您遇到的问题可能是您使用的(折旧为):

从jQuery1.7开始,不推荐使用.live()方法。使用.on()来 附加事件处理程序。jQuery旧版本的用户应使用 .delegate()优先于.live()

这将因您使用-This而进一步复杂化


修复

我会立即这样做:

  // Sorting and pagination links.
  $(document).on('click', '#pimps th a, #pimps .pagination a', function () {   
    $.getScript(this.href);   
    return false;   
  });

  // Search form.
  $(document).on('submit, '#pimps_search'function () {   
    $.get(this.action, $(this).serialize(), null, 'script');   
    return false;
 });   
这来自您的
文档
对象-意味着来自Ajax的任何更新都将绑定到页面上的元素,而不管该对象是否在
DOM
load上可用

--

调试


对于JS问题,您确实需要测试每个小问题。首先,您需要确保JS被调用并被解雇。如果可以的话,那么我们需要查看ajax功能是否正常工作,然后查看如何在页面上使其正常工作

在application.js中添加这一行

//= require_self

天哪!花了一些时间,但最终发现了问题

index.js.erb

$('#pimps').html('<%= escape_javascript(render(:partial =>"pimps")) %>'));
$('pimps').html('pimps'))%>;
最后一个括号太多了!将其更改为:

$('#pimps').html('<%= escape_javascript(render(:partial =>"pimps")) %>');
$('pimps').html('pimps'))%>;
现在它工作得很好


还必须添加Ricks代码,因为“live”与我的jquery版本不兼容,并且与TurboLink冲突

因为这一直是问题的原因
LOLI真的不明白你的意思。事件函数是在my application.js中单击时触发的函数?不知道如何测试它的发射你能更具体一点吗?很抱歉,我是个新手。好吧,我在调试时发现一个错误,说我的视图中缺少一个“;”符号!但是它是一个html.erb文件,所以我根本不用“;”这个词?此外,我的排序功能不再工作,因为我包含了新的代码丰富的Peck,所以我可能需要更改一些内容。控制台是否提到错误发生在哪一行?它说第1行字符5087,但是,如果我单击错误消息,它会直接将我重定向到该行,而该行只是html表中的一行,应该使用ajax呈现。如果我尝试对不同的列进行排序,则错误消息会毫无意义地更改字符数。好的,现在可以了!非常感谢瑞克!真的很感激!