我有一个使用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"
这是截图:
谢谢你的帮助!
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()
但是,该页面显示为灰色且无效。
答案 0 :(得分:1)
this
中的$(this).dialog "close"
可能不是指向模态,而是指向按钮。
您将此行更改为:
$('#modalId').dialog "close"
(用您拥有的ID替换modalId
)
答案 1 :(得分:0)
我终于明白了 - 有点。
我从gem bootstrap-sass
切换到gem twitter-bootstrap-rails
。
问题消失了。