Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在RubyonRails应用程序中,页面不断使用AJAX调用重新加载_Javascript_Jquery_Ruby On Rails_Ruby_Ajax - Fatal编程技术网

Javascript 在RubyonRails应用程序中,页面不断使用AJAX调用重新加载

Javascript 在RubyonRails应用程序中,页面不断使用AJAX调用重新加载,javascript,jquery,ruby-on-rails,ruby,ajax,Javascript,Jquery,Ruby On Rails,Ruby,Ajax,我相信这是一个简单的解决方案,但它让我发疯。我有一个RubyonRails应用程序,在jQuery按钮单击事件上对控制器操作进行简单的AJAX调用,以提交数据,并在成功提交时启动一个模式弹出窗口。请参阅下面的代码 <script type="text/javascript"> $('.linkclass').click(function() { id = $(this).attr('id'); event.preventDefault(); $.ajax({ url:

我相信这是一个简单的解决方案,但它让我发疯。我有一个RubyonRails应用程序,在jQuery按钮单击事件上对控制器操作进行简单的AJAX调用,以提交数据,并在成功提交时启动一个模式弹出窗口。请参阅下面的代码

<script type="text/javascript">
$('.linkclass').click(function() {
  id = $(this).attr('id');
  event.preventDefault();
  $.ajax({
  url: "/controller_name/action_name/" + id,
  type: "GET",
  success: function (data) { 
      // call my modal pop-up
      $( "#dialog" ).dialog();
  }
  });
});
</script>

$('.linkclass')。单击(函数(){
id=$(this.attr('id');
event.preventDefault();
$.ajax({
url:“/controller\u name/action\u name/”+id,
键入:“获取”,
成功:函数(数据){
//调用我的模式弹出窗口
$(“#dialog”).dialog();
}
});
});
视图中与此问题相关的唯一HTML如下(modal div和链接HTML)。同样,当Javascript在视图中时,这也可以正常工作:

<%= link_to "Submit your info", "/controller_name_name/action_name/#{product.id}", :id => product.id, :class => "linkclass" %>

<div id="dialog" title="Basic dialog" style="display:none">
<p>Your data has been successfully submitted!</p>
</div>
product.id,:class=>linkclass%%>
您的数据已成功提交

当Javascript在视图中并且页面没有像我所希望的那样重新加载时,此代码可以完美地工作。但是,当我将此Javascript代码(减去脚本标记)放在单独的Javascript文件中时,它会在单击链接时刷新页面。所有内容都可以提交,但页面会重新加载/刷新,我不希望它重新加载。当我把代码放在一个单独的文件中时,我是否忘记了向代码中添加额外的内容?单独的js文件位于assets/javascript文件夹中,包含在HTML中(我在viewsource中看到它),所以这不是问题所在


任何建议都将不胜感激。

绑定事件处理程序时DOM尚未完全加载。在绑定DOM之前,必须确保已加载DOM,如下所示:

$(document).ready(function(){
    $('.linkclass').click(function() {
      id = $(this).attr('id');
      event.preventDefault();
      $.ajax({
      url: "/controller_name/action_name/" + id,
      type: "GET",
      success: function (data) { 
          // call my modal pop-up
          $( "#dialog" ).dialog();
      }
      });
    });
});

发布按钮所在的html。我发布了模式html。另一个视图代码似乎与问题无关(只是简单的文本)。但是,如果我需要在页面中发布整个视图,我会。头js和css文件非常长。ajax调用是如何触发的?有提交按钮吗?这是一个jQuery点击事件。我刚刚添加了启动单击事件的HTML中的链接的代码。我使用的是link_to方法。由于您使用javascript处理链接,请尝试将第二个参数“/controller_name_name_name/action_name/#{product.id}”更改为“javascript:;”。这看起来像是一个提交,并将刷新页面,除非您指定javascript将覆盖它。