Khi neo này sẽ chỉ chứa một chức năng để xử lý trên nhấp chuột, hơn bạn có thể chỉ cần viết
document.getElementById('anchorID').onclick=function(){/* some code */}
nếu không, bạn phải sử dụng DOM phương pháp addEventListener
function clickHandler(){ /* some code */ }
var anchor = document.getElementById('anchorID');
if(anchor.addEventListener) // DOM method
anchor.addEventListener('click', clickHandler, false);
else if(anchor.attachEvent) // this is for IE, because it doesn't support addEventListener
anchor.attachEvent('onclick', function(){ return clickHandler.apply(anchor, [window.event]}); // this strange part for making the keyword 'this' indicate the clicked anchor
cũng nhớ để gọi ở trên mã khi tất cả các phần tử được tải (ví dụ: trên window.onload)
- chỉnh sửa
Tôi thấy bạn đã thêm một số chi tiết. Nếu bạn muốn thay thế mã dưới đây
$("a.scroll-up, a.scroll-down").click(function(){SNavigate($(this).attr("href").substr(7));return false;});
với sth mà không sử dụng jQuery, điều này sẽ làm công việc
function addEvent(obj, type, fn) {
if (obj.addEventListener)
obj.addEventListener(type, fn, false);
else if (obj.attachEvent)
obj.attachEvent('on' + type, function() { return fn.apply(obj, [window.event]);});
}
addEvent(window, 'load', function(){
for(var i=0, a=document.anchors, l=a.length; i<l;++i){
if(a[i].className == 'scroll-up' || a[i].className == 'scroll-down'){
addEvent(a[i], 'click', function(e){ SNavigate(this.href.substr(7)); e.returnValue=false; if(e.preventDefault)e.preventDefault();return false});
}
}
});
goood, cảm ơn. Đó là những gì tôi cần. – Mike
Bạn cũng có thể tìm thấy giải pháp Dean Edwards thú vị - http://dean.edwards.name/weblog/2005/10/add-event/ –
@Russ Cam: giải pháp Dean Edwards có một bất lợi, những gì Dean mô tả sau: http://dean.edwards.name/weblog/ – Rafael