首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

JavaScript 事件對象兼容寫法:jQuery 統一 event.target,無需手動兼容 IE

     編輯:程式設計疑難解答

原代碼問題

function select(e) {
    var ev = e || window.event;
    var target = ev.target || ev.srcElement;
    var typeName = target.innerText; // Firefox 不支援 innerText
    // ...
}

現象:Firefox 下 `target.innerText` 為 `undefined`,導致後續邏輯失敗。

修正:用 `innerHTML` 或 `textContent`

var typeName = target.textContent || target.innerText; // 兼容所有瀏覽器
// 或
var typeName = target.innerHTML; // 若需保留 HTML 標簽

更佳方案:直接用 jQuery 事件對象

若頁面已引入 jQuery,**不要手寫兼容代碼**。jQuery 統一封裝 `event.target`、`event.currentTarget`、`event.which` 等。

// 原生綁定改為 jQuery 綁定
$('#yourSelect').change(function(e) {
    var target = e.target; // 已統一
    var typeName = $(target).text(); // 直接取文本,自動兼容
    // ...
});

補充:原生統一寫法(無 jQuery 時)

function getTarget(e) {
    e = e || window.event;
    return e.target || e.srcElement;
}
function getText(node) {
    return node.textContent || node.innerText || '';
}
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved