click
個々のリンクのいずれかにハンドラーをアタッチできます。
var links = document.getElementsByTagName('a');
var index;
for (index = 0; index < links.length; ++index) {
links.onclick = linkClickHandler;
}
function linkClickHandler() {
var x = this.href.indexOf('?');
var query = x >= 0 ? this.href.substring(x + 1) : null;
if (query) {
// Do the ajax thing...
// (your code here)
// ...and prevent the link from being followed
return false;
}
}
...または(これはおそらくより良い)document
それ自体に:
document.onclick = function(e) {
var target, x, query;
e = e || window.event;
target = e.target;
if (target.tagName.toUpperCase() === "A") {
x = target.indexOf('?');
query = x >= 0 ? target.substring(x + 1) : null;
if (query) {
// Do the ajax thing...
// (your code here)
// ...and prevent the link from being followed
return false;
}
}
};
どちらの場合でも、最近のブラウザでは、addEventListener
ではなくを使用して、イベント オブジェクトonclick
を呼び出すことができます。preventDefault
しかし、IE8attachEvent
では、addEventListener
.
(return false;
昔ながらの DOM0 イベント ハンドラーからonclick
、イベントのデフォルト アクションを防止するようになっています。詳細.)