jquery父文件

时间:2013-01-26 14:44:48

标签: jquery fancybox fullcalendar

我遇到了jquery parent的问题。我尝试通过其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");
                    }
                });
     })

1 个答案:

答案 0 :(得分:0)

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

这将从DOM中删除日历。父元素“#calendar”仍然存在,但一切都消失了。因此,除非您重新初始化日历,否则所有接下来的3个.fullCalendar(...)调用都将无效。

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

如果你定义了

,你可以节省一些打字
var $theCalendar = $( '#calendar' );
// ...
$theCalendar.fullCalendar( ... );

位于函数顶部。