1

I have a problem with jquery parent. I try to access an element by its ID but it still fails. The item is a jquery full calendar plugin and I'm trying to recharge events. Here I leave the code in case someone can help me.

$('.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");
                    }
                });
     })

If I try to access from a click of a DOM element works correctly but if I try from a button I can not access the iframe. Here is the code:

$('#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 回答