2010-08-04 36 views
6

Tôi sử dụng thẻ <a> để tạo nút. Tôi sử dụng JavaScript (jQuery) để thực hiện hành vi.Sử dụng thẻ <a> làm nút mà không cần theo liên kết của nó

Làm cách nào để ngăn trình duyệt theo dõi liên kết trong khi tiếp tục thực hiện tất cả các sự kiện click()?

này:

$("a.button").live("click", function(event) { return false; }); 

không làm việc, bởi vì, tùy thuộc vào vị trí của handler rằng nó có thể ngăn chặn .click() xử lý khác từ thực hiện. Đối với một số nút nó hoạt động như tôi muốn nó, nhưng đối với một số nó ngăn cản xử lý khác của tôi từ thực hiện.

Tôi biết tôi có thể sử dụng một trình xử lý nhấp chuột duy nhất cho mỗi nút, nhưng tôi muốn làm điều đó theo cách AOP.

Trả lời

6

jQuery cung cấp phương thức được gọi là preventDefault sẽ dừng hành động mặc định của sự kiện xảy ra. Với điều này đoạn mã sau sẽ ngăn chặn liên kết không bị theo dõi nhưng không nên dừng sự truyền bá của các bộ xử lý khác.

$("a.button").click(function(event){ event.preventDefault(); }); 
+0

Đó là một. Bạn đánh bại tôi vào nó :) –

Các vấn đề liên quan