我遇到了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");
}
});
})
答案 0 :(得分:0)
//$('#calendar',window.parent.document).fullCalendar( 'destroy');
这将从DOM中删除日历。父元素“#calendar”仍然存在,但一切都消失了。因此,除非您重新初始化日历,否则所有接下来的3个.fullCalendar(...)调用都将无效。
http://arshaw.com/fullcalendar/docs/display/destroy/
如果你定义了
,你可以节省一些打字var $theCalendar = $( '#calendar' );
// ...
$theCalendar.fullCalendar( ... );
位于函数顶部。