看板 Ajax 關於我們 聯絡資訊
請教各位先進 小弟目前設計出一個彈跳視窗(div),其中包含多個核選方塊(checkbox)。 想要讓使用者,點擊彈跳視窗以外範圍時,自動隱藏該視窗 目前想到的方式是: div綁住一個blur()事件,的確 點擊其它處時會隱藏… 但一點選div內的物件(checkbox),也會隱藏div 不知這段要如何改寫? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.125.235.184
musie:window 掛一個點擊事件,點擊時檢查是否在div內.. 12/20 16:38
mrbigmouth:印象中jquery有個plugin新增一堆outside event 12/20 17:27
chrisQQ:div 掛 click function,然後所有 div hide()。 12/20 18:21
chrisQQ:this.show() 或是你可以取得目前 div id 用不等於id去hide 12/20 18:21
mrbigmouth:哇靠...樓上這工程也太大了吧? div多一點豈不是會lag.. 12/20 20:57
mrbigmouth:照一樓講去做就對了... 12/20 20:59
mrbigmouth:var $div=$('#div');$('body').click(function(e){ 12/20 21:05
mrbigmouth: if ($(e.target).parents('#div').length<1){ 12/20 21:05
mrbigmouth: $div.hide(); 12/20 21:06
mrbigmouth: } 12/20 21:06
mrbigmouth:}); 12/20 21:06
mrbigmouth:以上是假設該div id為div的寫法 12/20 21:06
mrbigmouth:啊 parents會不包括自身.... 12/20 21:10
mrbigmouth:if裡面要加&& $(e.target).attr('id')!='div' 12/20 21:20
mrbigmouth:不過這還滿笨的 更聰明的寫法找別人吧.... 12/20 21:20
chrisQQ:http://chrisliu.net/test/test_div.php 12/20 21:53
chrisQQ:我原本看成是點擊 div 消掉其他 div :( 不過看起來, 12/20 21:53
chrisQQ:原PO只是想做 lightbox/colorbox 的效果罷了… 12/20 21:54
chrisQQ:至於會有 100 個 div 只是想測試一下很多 div 到底多慢 12/20 21:54
chrisQQ:可以開 firefox/chrome 看 console log 裡面有記 12/20 21:55
chrisQQ:timestamp。 12/20 21:55
chrisQQ:另外 IE 如果有問題的話是正常的,我記得 ie9 之前都沒有 12/20 22:00
chrisQQ:console.log 所以會報炸。我對 IE 很不友善的 XDD 12/20 22:00
fr730149:謝謝各位的回答,原來還有outside的plugin 12/21 09:24
fr730149:我都忘了還可以用$('body')可以用,這方法夠了 12/21 09:27
fr730149:IE 我也很少用…但IE的市佔率高,故不得不配合它 12/21 09:29
chrisQQ:是說,拿掉 console.log 那段的話,理論上IE也能動 12/21 10:02