2012-05-02 33 views
18

Mẫu mãspan với sự kiện onclick bên trong một thẻ

<a href="page" style="text-decoration:none;display:block;"> 
    <span onclick="hide()">Hide me</span> 
</a> 

Kể từ khi thẻ là trong khoảng không có thể nhấp vào nó. Tôi thử z-index nhưng không hoạt động

+0

Đây chỉ là một mẫu mã đơn giản: D còn có một công cụ bên trong một thẻ. Tôi muốn giấu cái lỗ – Ben

+0

Vì vậy, bạn muốn ẩn khoảng cách khi nhấp vào siêu liên kết. Tôi có đúng không? – user1135357

+0

noo chức năng ẩn sẽ ẩn lỗ một thẻ. Có một vòng lặp hiển thị 10. Và tôi sử dụng .closest(). FadeOut(); nhưng tôi không thể nhấp vào thẻ span vì một thẻ – Ben

Trả lời

33
<a href="http://the.url.com/page.html"> 
    <span onclick="hide(); return false">Hide me</span> 
</a> 

Đây là giải pháp đơn giản nhất.

+0

Hoạt động tuyệt vời. Không cần thiết lập kiểu cho một thẻ – Ondra

+0

Bất kỳ ý tưởng nào không hoạt động nếu chức năng đang được kích hoạt bởi 'onclick' được định nghĩa bên trong' window.onload'? –

+0

Giải pháp đáng yêu, thậm chí không cần đến 'event.stopPropagation();' – AmerllicA

0

Mã của bạn là tốt, nó nên thực hiện chức năng onClick.

Có thể hàm hide() không chính xác và không thực thi.

Bạn có gặp bất kỳ lỗi nào trong firebug không?

+0

nó bắt đầu ẩn nó nhưng sau đó nó thay đổi trang – Ben

0

Tôi sẽ sử dụng jQuery để có được kết quả mà bạn đang tìm kiếm. Bạn sẽ không cần phải sử dụng một thẻ neo tại thời điểm đó nhưng nếu bạn đã làm nó sẽ như thế nào:

<a href="page" style="text-decoration:none;display:block;"> 

<span onclick="hide()">Hide me</span> 

</a> 

<script type='text/javascript' src='http://code.jquery.com/jquery-1.7.2.min.js'/
<script type='text/javascript'> 
$(document).ready(function(){ 
    $('span').click(function(){ 
      $(this).hide(); 
    } 
} 
10

Khi bạn bấm vào hide me, cả mộtkhoảng nhấp chuột được kích hoạt. Kể từ khi trang được chuyển hướng đến khác, bạn không thể nhìn thấy hoạt động của hide()

Bạn có thể thấy điều này để làm rõ hơn

http://jsfiddle.net/jzn82/

+0

Có vấn đề – Ben

-2

Bạn có thể sử dụng jQuery

http://jsfiddle.net/Bdqv7/

+0

Liên kết phải được bao gồm – Ben

+0

Sau đó, chỉ cần thêm liên kết – user1135357

+0

nếu tôi chỉnh sửa mã của bạn và tạo đường dẫn trong href khi khoảng thời gian nhấp {"lỗi": "Vui lòng sử dụng yêu cầu POST"} – Ben

0

sử dụng onmouseup

thử một cái gì đó giống như

 <html> 
     <head> 
     <script type="text/javascript"> 
     function hide(){ 
     document.getElementById('span_hide').style.display="none"; 
     } 
     </script> 
     </head> 

     <body> 
     <a href="page" style="text-decoration:none;display:block;"> 
     <span onmouseup="hide()" id="span_hide">Hide me</span> 
     </a> 
     </body> 
     </html> 

EDIT này:

  <html> 
     <head> 
     <script type="text/javascript"> 
     $(document).ready(function(){ 
     $("a").click(function() { 
     $(this).fadeTo("fast", .5).removeAttr("href"); 
     }); 
     }); 
     function hide(){ 
     document.getElementById('span_hide').style.display="none"; 
     } 
     </script> 
     </head> 

     <body> 
     <a href="page.html" style="text-decoration:none;display:block;" onclick="return false" > 
     <span onmouseup="hide()" id="span_hide">Hide me</span> 
     </a> 
     </body> 
     </html> 
+0

Tôi phải được nhấp vào vì thẻ span là để xóa một tin nhắn – Ben

+0

bạn không muốn hành động khác, chỉ để xóa tin nhắn – srini

+0

có chỉ để xóa và sẽ ẩn thông báo lỗ từ trang – Ben

2

Trả lời câu trả lời.

Tôi đã sử dụng một số kiểu sắp xếp để đạt được điều này.

<span 
    class="pseudolink" 
    onclick="location='https://jsfiddle.net/'"> 
Go TO URL 
</span> 

.pseudolink { 
    color:blue; 
    text-decoration:underline; 
    cursor:pointer; 
    } 

https://jsfiddle.net/mafais/bys46d5w/

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