对话关闭事件未触发

时间:2012-12-13 16:49:11

标签: jquery jquery-ui jquery-ui-dialog

这不像我期望的那样工作:

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

如果单击关闭按钮或按退出键,则_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>

我认为这是标准。

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

提前致谢!

1 个答案:

答案 0 :(得分:1)

您需要为关闭按钮设置点击事件

jsfiddle example

使用jQuery .on()委派,这将使您的关闭按钮调用jquery UI对话框close事件

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