2010-08-20 36 views
5

Tôi có chức năng a.click() trong jquery ... Nhưng nếu tôi nhấp vào một neo, tôi mở một cửa sổ mới ... Nhưng làm cách nào để ngăn trình duyệt mở cửa sổ mới?jQuery - anchor click

dụ:

$('a').each(function() { 
      $(this).click(function(e) { 
       if($(this).attr('target') == '_popup') { 
        //here is code to open window (already exists) 

        //try to stop propagation, but doesn't work... 
        e.stopPropagation(); 
       } 

       hideNSL(); 
      }); 
    }); 

như vậy, làm thế nào để ngăn chặn sự kiện này ??

Trả lời

12

Hãy thử

e.preventDefault() 

nhưng đây return false cũng có thể làm điều đó mà là ở câu trả lời khác. preventDefault có thể được sử dụng trong nhiều senarios và là một chung chung hơn "ngăn chặn các hành động sự kiện mặc định", xem: http://api.jquery.com/event.preventDefault/

+0

làm việc này (đặt Tôi không thể chấp nhận câu trả lời của bạn ... Tôi phải đợi-.-) – dododedodonl

4

Thêm phần này vào cuối sự kiện click của bạn:

return false; 

Vì vậy, ví dụ:

$('a').each(function() { 
     $(this).click(function(e) { 
      var toReturn = true; 
      if($(this).attr('target') == '_popup') { 
       //here is code to open window (already exists) 

       toReturn = false; 
      } 

      hideNSL(); 
      return toReturn; 
     }); 
}); 
3

Bạn có thể thử

e.preventDefault(); 
-1

EDIT, tôi đứng sửa chữa .preventDefault không phải là một chức năng jQuery.

+0

nó chỉ phải làm việc trong safari (nó là một phần mở rộng safari), và nó hoạt động ... – dododedodonl

+0

Nó không phải là một chức năng jQuery. –

+1

Vì nó không được làm sáng tỏ trong câu hỏi này vẫn có thể là tiện dụng cho những người dùng khác vấp phải câu hỏi mà bạn không nghĩ? – jpluijmers

3
e.preventDefault(); 
Các vấn đề liên quan