单击rails应用程序时,模态窗口出现两次

时间:2012-02-22 15:35:27

标签: javascript jquery ruby-on-rails

我在http://autozeep.com/cars

上有这个网络应用程序

每辆车都有链接将此车详情发送给您朋友或您的朋友的电子邮件。点击“发送好友”,你会看到模态窗口出现。问题是模态正在加载2次,当我点击链接时我有2个窗口,一个在另一个上面,我仍然可以填写表格并将其发送到邮件之后页面刷新到汽车列表并且它全部好吧,但是如果我不想把报价发送到邮件而我只是关闭窗口,你可以看到还有一个窗口要关闭,为什么呢?请帮忙。

这就是链接打开模态窗口的样子:

<%= link_to image_tag('sendtofriend.png'), send_to_friend_car_path(car),  :remote => true, :class=> 'send_to_friend' %>

和application.js

// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults



$(document).ready(function() {
  $('.find_on_map').click(function(e) {
    var url = $(this).attr('href');
    var dialog_form = $('<div id="dialog-form">Loading form...</div>').dialog({
      autoOpen: false,
      width: 600,
      modal: true,
      open: function() {
        return $(this).load(url + ' #content');
      }
    });
    dialog_form.dialog('open');
    e.preventDefault();
  });
});

$(document).ready(function() {
  $('.setmain').click(function(e) {
    var url = $(this).attr('href');
    var dialog_form = $('<div id="dialog-form">Loading form...</div>').dialog({
      autoOpen: false,
      width: 600,
      modal: true,
      open: function() {
        return $(this).load(url + ' #content');
      }
    });
    dialog_form.dialog('open');
    e.preventDefault();
  });
});

$(document).ready(function() {
  $('.send_to_friend').click(function(e) {
    var url = $(this).attr('href');
    var dialog_form = $('<div id="dialog-form">Loading form...</div>').dialog({
      autoOpen: false,
      width: 400,
      modal: true,
      open: function() {
        return $(this).load(url + ' #content');
      }
    });
    dialog_form.dialog('open');
    e.preventDefault();
  });
});

$(document).ready(function() {
  $('.request_more_details').click(function(e) {
    var url = $(this).attr('href');
    var dialog_form = $('<div id="dialog-form">Loading form...</div>').dialog({
      autoOpen: false,
      width: 400,
      modal: true,
      open: function() {
        return $(this).load(url + ' #content');
      }
    });
    dialog_form.dialog('open');
    e.preventDefault();
  });
});

$(document).ready(function() {
  $('.make_offer').click(function(e) {
    var url = $(this).attr('href');
    var dialog_form = $('<div id="dialog-form">Loading form...</div>').dialog({
      autoOpen: false,
      width: 400,
      modal: true,
      open: function() {
        return $(this).load(url + ' #content');
      }
    });
    dialog_form.dialog('open');
    e.preventDefault();
  });
});

固定

我使用<%= javascript_include_tag :defaults %>

更改了<%= javascript_include_tag :all %>

2 个答案:

答案 0 :(得分:1)

查看萤火虫

当我点击“发送朋友”时3 GET REQUESTS被张贴出来...
让我们有一些源代码让您详细了解......

enter image description here

答案 1 :(得分:1)

很可能,你有两个javascripts响应同一次点击。

如果您在网页上查看来源,则可以看到

<script src="/javascripts/application.js?1324469597" type="text/javascript"></script>
<script src="/javascripts/rails.js?1312451872" type="text/javascript"></script>
<script src="/javascripts/application.js?1324469597" type="text/javascript"></script>

Application.js包含两次。这可能不是导致问题的确切js文件,但更有可能的是,如果您玩游戏并从您的网站中删除javascript,您将拥有相同的功能而无需重复响应。