.toggle(fn1, fn2, ...) (事件切換版) **在 jQuery 1.9 中被移除**。jQuery 2.1.3 完全不支援。僅保留 .toggle() (顯示/隱藏切換版)。
| 版本 | toggle(fn1, fn2...) | toggle() 顯示隱藏 |
|---|---|---|
| 1.0 - 1.8 | ✅ 支援 | ✅ 支援 |
| 1.9+ | ❌ 移除 (需 Migrate 插件) | ✅ 支援 |
| 2.x / 3.x | ❌ 不支援 | ✅ 支援 |
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<script>
$(function() {
var state = 0;
var images = [
'Image/image01.jpg',
'Image/image02.jpg',
'Image/image03.jpg'
];
$('img').on('click', function() {
state = (state + 1) % images.length;
$(this).attr('src', images[state]);
$(this).attr('title', images[state]);
});
// 初始化 src,否則第一次點擊無圖片可見
$('img').attr('src', images[0]);
});
</script>
<img />
$.fn.toggleClick = function(...handlers) {
let state = 0;
return this.on('click', function(e) {
handlers[state].call(this, e);
state = (state + 1) % handlers.length;
});
};
// 使用
$('img').toggleClick(
function() { $(this).attr('src', 'img1.jpg'); },
function() { $(this).attr('src', 'img2.jpg'); },
function() { $(this).attr('src', 'img3.jpg'); }
);
原始碼 `` 無 `src` 屬性 → 圖片不顯示 → 使用者無法點擊 → 事件永不觸發。**必須預設一張圖片** 或用 CSS 給可見區域。
| 舊 API | 替代方案 |
|---|---|
| .live() | .on() |
| .delegate() | .on() |
| .toggle(fn1, fn2) | 手動狀態機 / 插件 |
| .error() | .on('error') |
| $.browser | 特性檢測 / Modernizr |