class="trigger" 元素 → 顯示 class="panel" 層$(function() {
var $trigger = $('.trigger');
var $panel = $('.panel');
var originalText = $trigger.text();
$trigger.on('click', function(e) {
e.stopPropagation(); // 防止冒泡觸發 mouseout
$panel.show();
$trigger.text('.');
});
$trigger.on('mouseout', function() {
$panel.hide();
$trigger.text(originalText);
});
// 可選:點擊面板內部不隱藏
$panel.on('mouseout', function(e) {
if (!$(e.relatedTarget).closest($trigger).length) {
$panel.hide();
$trigger.text(originalText);
}
});
});
e.stopPropagation():點擊時阻止事件冒泡,避免瞬間觸發 mouseout 隱藏originalText 變量實現恢復e.relatedTarget 判斷鼠標是否真正離開交互區.panel { display: none; position: absolute; z-index: 100; background: white; border: 1px solid #ccc; padding: 10px; }
「點擊顯示、移出隱藏」是經典下拉/彈層模式。事件流控制(冒泡、進出判斷)是實現流暢體驗的關鍵。