2012-12-13 163 views
0

这不是工作像我期望它:对话框关闭事件不触发

$("#generalContactWindow").dialog({ 
    autoOpen: false, 
    draggable: true, 
    width: 600, height: 'auto', 
    closeOnEscape: true, 
    modal: true, 
    resizable: false, 
    close: function(event, ui) { 
     _gaq.push(['_trackEvent', 'DetailsGeneralForm', 'HideForm', document.location.href]); 
     console.log('_trackEvent DetailsGeneralForm HideForm called'); 
    } 
}); 

如果我点击关闭按钮或按下Esc键与_gaq.push(['_trackEvent', 'DetailsGeneralForm', 'HideForm', document.location.href]);部分将永远不会发生。

的密切联系是这样的:

<a class="ui-dialog-titlebar-close" href="#" unselectable="on" style="-moz-user-select: none;"><span unselectable="on" style="-moz-user-select: none;">X</span></a> 

我觉得这是标准的。

所有这一切的原因是我需要跟踪对话框的打开和关闭。 我可以很好地跟踪开幕,但不是结束。我该怎么办?

在此先感谢!

+0

是您的关闭按钮

jsfiddle example

你的console.log()工作吗?你有什么错误吗? –

+0

不,consoloe.log不起作用 – user1555112

+0

不,console.log()不起作用。 – user1555112

回答

1

你需要设置的单击事件使用jQuery .on()代表团,这将让您的关闭按钮调用jQuery UI的对话框close事件

$("#generalContactWindow").on('click', '.ui-dialog-titlebar-close', function() { 
    $("#generalContactWindow").dialog('close'); 
});​ 
+0

非常感谢,但在我的情况下,它不工作,因为ui对话框关闭#generalContactWindow div之外。我看到了你的jsfiddle,并用它来代替.ui-dialog-titlebar和ui-dialog-container,但是没有它们可以让我关闭事件。 – user1555112

相关问题