這個問題與Wordpress是半相關的,但在其他地方有應用。基本上,我試圖讓某人退出Thickbox時觸發頁面上其他地方的事件。編輯Thickbox文件不是一個選項。ThickBox關閉時如何觸發事件?
回答
由於Thickbox不是這樣寫的,所以它有點複雜。但也許你可以使用一些技巧來做到這一點。
這不是推薦的解決方案,但可以「重寫」關閉功能。喜歡的東西:
var old_tb_remove = window.tb_remove;
var tb_remove = function() {
old_tb_remove(); // calls the tb_remove() of the Thickbox plugin
alert('ohai');
};
我認爲你可以破解,通過點擊處理程序綁定到關閉按鈕:
$("#TB_closeWindowButton").click(function() {
doSomething();
});
如果你有一個選擇,擺脫thickbox(因爲它不再維護),並使用更活躍的社區。厚實網站,其實proposes some alternativesmirror。
我想過告訴他,但他必須重新綁定用於關閉厚盒子的所有元素(關閉按鈕,覆蓋和espace按鍵上的點擊) – 2011-05-23 01:41:03
,但在備選方案上爲+1 – 2011-05-23 01:41:13
Ah - 我應該發現這一點。如果感興趣,我從這裏獲得了關閉按鈕點擊處理程序的想法:http:// designerfoo。com/jquery-thickbox-hack-to-refresh-parent-window-on-tb_close-event.html – karim79 2011-05-23 01:46:19
您可以將偵聽器綁定到在關閉thickbox時觸發的「tb_unload」。例如使用jQuery:
<input id="tb_button" type="button" value="Click to open thickbox" />
jQuery('#tb_button').on('click', function(){
tb_show('This is Google in a thickbox', 'http://www.google.com?TB_iframe=true');
jQuery('#TB_window').on("tb_unload", function(){
alert('Triggered!');
});
}
這實際上是一個很好的答案。但是,tb_unload不是指向thickbox主頁的源代碼中的函數。但它是在WordPress的版本。指出這可能會有所幫助。而且,它是觸發thickbox的'a'元素,而不是輸入元素。最後,這個例子不起作用,因爲Google禁止以這種方式加載.tb_unload事件。也許是一個jsfiddle或codepen的例子。 – 2016-01-04 02:41:06
在ThickBox的3.1, 我會去的ThickBox-fixed.js 內將增加一個自定義函數爲自己
只是增加一個回調函數,不知道是個好方式,但它的工作爲我的項目。
function mycustom_tb_remove(callback) {
$("#TB_imageOff").unbind("click");
$("#TB_closeWindowButton").unbind("click");
$("#TB_window").fadeOut("fast",function(){
if(callback)callback();
$('#TB_window,#TB_overlay,#TB_HideSelect').trigger("unload").unbind().remove();
});
$("#TB_load").remove();
if (typeof document.body.style.maxHeight == "undefined") {//if IE 6
$("body","html").css({height: "auto", width: "auto"});
$("html").css("overflow","");
}
document.onkeydown = "";
document.onkeyup = "";
return false;
}
所以,當我用我的自定義刪除的功能。我會用這種方式。
你可以嘗試這樣的事情......
var tb_unload_count = 1;
$(window).bind('tb_unload', function() {
if (tb_unload_count > 1) {
tb_unload_count = 1;
} else {
// do something here
tb_unload_count = tb_unload_count + 1;
}
});
tb_unload
被觸發,從而兩次,這包括一個黑客位,以確保您的代碼不運行第二次。
- 1. 如何在不關閉的情況下從thickbox中觸發事件?
- 2. 如何在插件關閉/銷燬時觸發事件?
- 3. 如何在另一個窗口關閉時觸發事件?
- 4. 如何當關閉事件發生時
- 5. 如何在用戶關閉窗口時觸發事件,但在導航/刷新/等時不能觸發事件?
- 6. 三次觸發滾動事件「關閉」
- 7. 對話框關閉事件不觸發
- 8. node.js http.IncomingMessage不會觸發「關閉」事件
- 9. createWriteStream「關閉」事件未觸發
- 10. 彈出關閉後觸發的事件
- 11. 如何防止在窗體關閉時發生控件觸發事件
- 12. VB.NET應用程序觸發關閉窗體關閉事件
- 13. R和gWidgets:關閉某個控件時的事件觸發器
- 14. 如何手動觸發wx.Frame關閉事件(wxPython)?
- 15. 如何在任何jQuery UI對話框關閉時觸發事件?
- 16. 當vtiger關閉時,哪個事件會彈出觸發器?
- 17. 關閉FirefoxOS應用程序時會觸發什麼API事件
- 18. p:使用dialog.hide時,dialog不會觸發ajax關閉事件()
- 19. 當form2在vb.net關閉時觸發form1的事件
- 20. 當彈出窗口關閉時在頁面上觸發事件
- 21. Qtip2 Modal,關閉模式時觸發事件
- 22. 關閉表單時會觸發什麼VBA事件?
- 23. UltraTabPageControl窗口關閉時觸發哪個事件
- 24. 在datepicker中點擊關閉按鈕時觸發一個事件
- 25. 離開網站或關閉瀏覽器時觸發的事件
- 26. DataGridView CellValidated在關閉表單時觸發事件
- 27. SQLAlchemy事件觸發Celery任務時關閉連接
- 28. 如何在關閉事件後使觸發器點擊事件工作
- 29. 關閉ThickBox模態窗口
- 30. 如何在啓動時觸發下拉按鈕模糊/關閉事件?
感謝您的代碼。發現它的一個問題:圖片上傳thickbox似乎多次調用tb_remove函數,導致我的自定義tb_remove函數中的代碼被多次調用。有關如何解決這個問題的任何想法? – 2011-05-25 10:36:09
嗯......我會盡力找到解決的辦法。如果我找到了一些東西,會發表評論...順便說一句你可以使用另一個庫嗎 – 2011-05-25 10:56:06
我有一些代碼在WordPress這裏重現問題:[鏈接](http://wordpress.stackexchange.com/questions/18216/issue-with-code-manipulating-the-image-upload-thickbox)。我試圖使用WordPress的內置圖片上傳器thickbox,但我遇到了這個問題。 – 2011-05-25 11:04:23