2012-12-13 161 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

相關問題