1

我有一个使用 Fullcalendar 的 Rails 应用程序。它有一个输入工时的模式。模态显示很好,如果您输入数据,它将被添加到数据库中。

但是,模态不会关闭。甚至模态框右上角的取消按钮和 X 也不起作用。

Uncaught jQuery.event.remove在浏览器控制台中得到一个。见附图。

我有非常相似的代码在另一个应用程序中工作。我已经寻找并寻找会导致这种情况的差异 - 无济于事。

该语句不起作用是$(this).dialog "close". 但是,就像我说的,该语句在另一个使用 Fullcalendar 的应用程序中运行良好。

我只是不知道在哪里看。

如何追踪未捕获的错误?(我觉得它是导致错误的其他一些 javascript(不是 Fullcalendar)。)

这是创建按钮的咖啡脚本:

   $("#dialog-form").dialog
     autoOpen: true
     height: 450
     width: 400
     modal: true
     buttons:
      "Create Labor": ->
        $.create "/events/",
          event:
            workorder_id: workorder.val(),
            actcode_id: actcode.val(),
            title: title.val(),
            description: description.val(),
            hours: hours.val(),
            starts_at: "" + start,
            ends_at: "" + end,
            all_day: allDay,
            maxsynch: "N",
            employee_id: $('#calendar').data('employeeid'),
            overtime: "TRUE" if $("#overtime").is(":checked")
          complete: ->
            $('#calendar').fullCalendar('refetchEvents')
        $(this).dialog "close"
        $('#calendar').fullCalendar('refetchEvents')
        $("#workorder_id").val("")
        $("#title").val("")
        $("#hours").val("")
        $("#description").val("")
      Cancel: ->
        $(this).dialog "close"

这是一个屏幕截图:

在此处输入图像描述 谢谢您的帮助!

UDPATE

随着对话框的显示,我在浏览器控制台中输入了以下内容:

$(this).dialog("close")

并收到此消息:

Error: cannot call methods on dialog prior to initialization; attempted to call method 'close'

以下没有做任何事情:

$("#dialog-form").dialog("close")

更新2

这有助于关闭模式:

$('.ui-dialog').remove()

但是,页面是灰色的,无法正常工作。

4

2 回答 2

1

thisin$(this).dialog "close"可能不是指向模式,而是指向按钮。

您将此行更改为:

$('#modalId').dialog "close"

(替换modalId为您拥有的 id)

于 2013-10-29T15:05:13.070 回答
0

我终于想通了——有点。

我从 切换gem bootstrap-sassgem twitter-bootstrap-rails

问题消失了。

于 2013-11-06T15:36:02.187 回答