Jquery AJAX无法在表上工作
试图通过在我的表中包含ajax使我的应用程序更具功能性。我使用本教程创建了我的代码,并且非常非常接近于说明 我正在使用IE8(什么可能是问题的原因,因为它总是问题的原因)和Rail4 Myapplication.jsJquery 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
// 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呈现。如果我尝试对不同的列进行排序,则错误消息会毫无意义地更改字符数。好的,现在可以了!非常感谢瑞克!真的很感激!