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")
UPDATE2
これはモーダルを閉じるために機能しました:
$('.ui-dialog').remove()
しかし、ページは灰色のままで機能していません。