1

jqueryの親に問題があります。ID で要素にアクセスしようとしましたが、それでも失敗します。アイテムは jquery フル カレンダー プラグインで、イベントをリチャージしようとしています。誰かが私を助けることができる場合に備えて、ここにコードを残します。

$('.seleccionparacita').live('click', function () {
  alert("hi1");
  alert($('#pruebaa',window.parent.document).text());//work
  $('#pruebaa',window.parent.document).html('adios');//work
      var nTds = $('td', this.parentNode.parentNode);
      var id = $(nTds[0]).text();
       $.ajax({
                data: { fecha: $('#fechacita').text(), medico: $('#seleccionmedico').val(), cliente : id },
                url: Routing.generate('comprobarcita'),
                success: function(data) {
                  if (data == 1){
                    $.ajax({
                        data: { fecha: $('#fechacita').text(), medico: $('#seleccionmedico').val(), cliente : id },
                        url: Routing.generate('guardarcita')
                          });
                    alert("llega");
                    $('#pruebaa',window.parent.document).html('adios');//work !!!
//down no work no acces id to calendar
                    //$('#calendar',window.parent.document).fullCalendar( 'destroy');
                    //$('#calendar',window.parent.document).fullCalendar( 'removeEventSource', citas );
                    //$('#calendar',window.parent.document).fullCalendar( 'addEventSource',  Routing.generate('citasajax',{id: 0}));
                    //$('#calendar',window.parent.document).fullCalendar( 'refetchEvents' );
                    alert("hi2");//work
                    parent.$.fancybox.close();
                  }
                    else
                      alert("Error el médico esta ocupado");
                    }
                });
     })

DOM要素をクリックしてアクセスしようとすると正しく動作しますが、ボタンからアクセスしようとするとiframeにアクセスできません。コードは次のとおりです。

$('#pruebaa').live('click', function () {
                alert("holita");//work
                $('#calendar').fullCalendar( 'refetchEvents' );//work

            })

                $('.seleccionparacita').live('click', function () {
                alert($('#pruebaa',window.parent.document).text());//work
                  var nTds = $('td', this.parentNode.parentNode);
                  var id = $(nTds[0]).text();
                   $.ajax({
                data: { fecha: $('#fechacita').text(), medico: $('#seleccionmedico').val(), cliente : id },
                url: Routing.generate('comprobarcita'),
                success: function(data) {
                  if (data == 1){
                    $.ajax({
                        data: { fecha: $('#fechacita').text(), medico: $('#seleccionmedico').val(), cliente : id },
                        url: Routing.generate('guardarcita')
                          });
                    alert("hi2");//work
                    $('#calendar').fullCalendar( 'refetchEvents' );//not work
                    alert("hi2");//not work
                    parent.$.fancybox.close();
                  }
                    else
                      alert("Error el médico esta ocupado");
                    }
                });
     })
4

1 に答える 1

0
//$('#calendar',window.parent.document).fullCalendar( 'destroy');

これにより、カレンダーが DOM から削除されます。親要素「#calendar」は残っていますが、すべてなくなっています。したがって、次の 3 つの .fullCalendar(...) 呼び出しはすべて、カレンダーを再初期化しない限り機能しません。

http://arshaw.com/fullcalendar/docs/display/destroy/

定義した場合、入力を節約できます

var $theCalendar = $( '#calendar' );
// ...
$theCalendar.fullCalendar( ... );

関数の上部にあります。

于 2013-01-27T14:07:35.977 に答える