Rails Fullcalendar模式关闭得到未捕获的错误

时间:2013-09-24 22:04:21

标签: ruby-on-rails fullcalendar

我有一个使用Fullcalendar的Rails应用程序。它有一个进入劳动时间的模式。模态显示正常,如果输入数据,它将被添加到数据库中。

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

我在浏览器控制台中获得Uncaught jQuery.event.remove。见附图。

我在另一个应用程序中使用非常相似的代码。我一直在寻找可能导致这种情况的差异 - 无济于事。

声明无效$(this).dialog "close"。但是,就像我说的那样,该语句在使用Fullcalendar的另一个应用程序中运行良好。

我只是不确定在哪里看。

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

以下是创建按钮的coffeescript:

   $("#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"

这是截图:

enter image description here 谢谢你的帮助!

UDPATE

显示对话框后,我在浏览器控制台中键入以下内容:

$(this).dialog("close")

得到了这个消息:

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

以下什么也没做:

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

UPDATE2

这有助于结束模式:

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

但是,该页面显示为灰色且无效。

2 个答案:

答案 0 :(得分:1)

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

您将此行更改为:

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

(用您拥有的ID替换modalId

答案 1 :(得分:0)

我终于明白了 - 有点。

我从gem bootstrap-sass切换到gem twitter-bootstrap-rails

问题消失了。