2009-04-23 28 views
6

Chỉ cần tự hỏi nếu có ai biết cách kết nối jquery để chạy chức năng khi người dùng nhấp vào liên kết hoặc tab đến liên kết và lần truy cập.Phát hiện khi liên kết được kích hoạt - bằng cách nhấp hoặc tab và nhập

Tôi muốn chặn việc kích hoạt liên kết đó và thực hiện một hành động trước khi trang được thay đổi, nhưng tôi muốn thực hiện nó trong cả hai trường hợp.

Trả lời

9

Các tiếng 'click' sự kiện sẽ cháy trong cả hai trường hợp, điều này sẽ giúp bạn có được những gì bạn muốn:

$('a').click(function(){ 
    alert('perform action here'); 
}); 
+0

Có thể để có được URL của liên kết đã được nhấp? –

+2

chắc chắn: cảnh báo ($ (this) .attr ('href')); – pjesi

+0

Hoặc 'this.href;' Hoặc, trong một số trình duyệt, 'this.getAttribute ('href'); 'jQuery không phải là (hoặc không nên) cần thiết cho phần đó. –

2

Nó khá thực sự đơn giản ... Khi nhấn enter trên một phần tử, nó hoạt động như một nhấp chuột trong trình duyệt. Không cần làm gì đặc biệt cả.

$('a.links_to_bind').bind('click', function() { 
    /* do your stuff... */ 
    return false; 
}); 

Edit: Nếu bạn muốn trang để thay đổi sau khi hành động của bạn đã hoàn thành, bạn có thể muốn thêm một statemenet có điều kiện để return false đó. Một cái gì đó như:

if(everythings_good) { 
    return true; 
} else { 
    return false; 
} 
-1
$('a').keydown(function() { 

return false; // Prevent default action 

}); 

$('a').keyup(function(event){ 

    if(event.keyCode == '13'){ 

      $(this).find('button.mychoice').click(); 

    } 

}); 


// This does the trick for both IE and FF. 
Các vấn đề liên quan