Tôi đang cố sửa đổi tất cả các liên kết trên một trang để chúng thực hiện một số công việc bổ sung khi chúng được nhấp.JavaScript: Thêm trình xử lý onClick mà không ghi đè số hiện có
Một cách tiếp cận tầm thường có thể là một cái gì đó như thế này:
function adaptLinks()
{
var links = document.getElementsByTagName('a');
for(i = 0; i != links.length; i++)
{
links[i].onclick = function (e)
{
<do some work>
return true;
}
}
}
Nhưng một số trong các liên kết đã có tài onClick handler mà cần được bảo tồn. Tôi thử như sau:
function adaptLinks()
{
var links = document.getElementsByTagName('a');
for(i = 0; i != links.length; i++)
{
var oldOnClick = links[i].onclick;
links[i].onclick = function (e)
{
if(oldOnClick != null && !oldOnClick())
{
return false;
}
<do some work>
return true;
}
}
}
Nhưng điều này không làm việc vì oldOnClick chỉ được đánh giá khi xử lý được gọi là (nó chứa giá trị của liên kết cuối cùng như thời điểm này).
I have seen that nhiều nhiệm vụ tương tự aroun d ở đây được giải quyết bằng cách sử dụng jQuery. Tôi hiện đang xem xét nó như là nó có vẻ dễ dàng một số nhiệm vụ khác là tốt. – rluba