點選彈出層之外的任何區域隱藏彈出層

2022-03-16 05:44:07 字數 682 閱讀 8615

修改了原先頁面的乙個下拉框的功能,用div彈出層來模擬select的原始功能,好處是可以任意的修改下拉框的樣式,例如設定它的高度等等(ie中不允許設定原始的select元素的高度),壞處是相容問題一大堆,不過還好相容問題不算太麻煩,期間還遇到了乙個問題:如何在彈出層彈出以後,點選彈出層之外的任意區域隱藏彈出層

此種場景肯定存在幾個必須存在的要素:

要素一:觸發元素;

要素二:觸發元素的click事件;

要素三:彈出層;

場景流程:

click -> 觸發元素 -> 彈出層

解決方案:(用偽**表示下)

1

varobj

=觸發元素;

2obj.hover(

function

(),

function

());

8});

即:在滑鼠懸浮於觸發元素之上的時候,為body解除mousedown的事件繫結;移出的時候再為body元素繫結mousedown事件;

為什麼要選用mousedown事件呢(而不用click事件)?這應該是為了防止事件冒泡對觸發元素的click事件產生不可預知的干擾,經測試,**執行正常。

鍵盤的彈出和隱藏

第一種 彈出時判斷是哪個控制項下,收起時判斷焦點 protected void hidesoftkeyboard protected void showsoftkeyboard view v 第二種 和第一種相反 protected void hidesoftkeyboard view v prot...

layer彈出層的位置設定

1 給彈出層id及資訊,方便獲取其寬度和高度 var index layer.msg data.info,2 根據具體情況計算出彈出層的top和left,用offset設定其位置 layer.msg index,例子,設定layer彈出層在彈出層 id為pop reg 的中間 水平垂直居中 位置 v...

基於jquery的鎖定彈出層

這個東西也是隨手總結出來的,引用 了一些js框架jquery的方法。div遮蓋其他控制項的方法參考了 對於需要遮蓋flash的,請將flash控制項的wmode變數值設定為 transparent 使用方法 effect maskdiv.js 這裡是乙個不引入jquery框架的實現同樣效果的程式。q...