2011-08-12 45 views
28

Tôi có một câu hỏi đơn giản. Các mã sau đây làm việc cho tất cả các thẻ:Jquery onclick trên div

$('*').click(function(e) { 
    alert(1); 
}); 

Tuy nhiên, khi tôi cố gắng mã này cho div với id "nội dung":

$('#content').click(function(e) { 
    alert(1); 
}); 

Tôi đang làm gì sai?

+0

Tôi không biết, bạn đang làm gì sai (như trong lỗi/không mong muốn)? –

Trả lời

38

Hãy chắc chắn rằng đó là trong một tài liệu sẵn sàng tagAlternatively, hãy thử sử dụng .live

$(document).ready(function(){ 

    $('#content').live('click', function(e) { 
     alert(1); 
    }); 
}); 

Ví dụ:

$(document).ready(function() { 
 
    $('#content').click(function(e) { 
 
     alert(1); 
 
    }); 
 
});
#content { 
 
    padding: 20px; 
 
    background: blue; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
 
<div id="content">Hello world</div>

Tính đến jQuery 1.7, các .live () không được chấp nhận. Sử dụng .on() để đính kèm trình xử lý sự kiện.

$('#content').on("click", function() { 
    alert(1); 
}); 
0

Kiểm tra số fiddle ... bạn đang thực hiện chính xác. Đảm bảo rằng id là nội dung và cũng kiểm tra để xem không có yếu tố nào khác có cùng id. Nếu có nhiều phần tử có cùng id, nó sẽ liên kết với phần tử đầu tiên. Đó có thể là lý do tại sao bạn không nhìn thấy nó.

+0

Cảm ơn, một điều tôi quên đề cập đến là bất kỳ thẻ khác không hoạt động (cơ thể, html vv ..) – CoachNono

8

Không có gì.

$('#content').click(function(e) { 
    alert(1); 
}); 

sẽ liên kết với một phần tử HTML hiện với các thiết lập ID để content, và sẽ hiển thị một hộp thông báo trên nhấp chuột.

  • Hãy chắc chắn rằng #content tồn tại trước khi sử dụng mã
  • Đó ID là độc đáo
  • Kiểm tra giao diện điều khiển Javascript của bạn cho bất kỳ lỗi hoặc các vấn đề
1

May div với id =" nội dung "không được tạo khi sự kiện này được đính kèm? Bạn có thể thử phương thức live() jquery.

khác có thể có nhiều divs với cùng id hoặc bạn chỉ đánh vần nó sai, nó xảy ra ...

1

Bó mã trong $(document).ready() phương pháp hoặc $().

$(function(){ 

$('#content').click(function(e) { 
    alert(1); 
}); 

}); 
+0

Kool, đừng quên đánh dấu câu trả lời này là :) – ShankarSangoli

+1

Bất cứ khi nào bạn muốn tìm bất kỳ phần tử hoặc sự kiện đính kèm handler cho các phần tử dom đảm bảo bạn làm điều đó trong phương thức '$()' hoặc '$ (document) .ready()'. '$ (" * ")' hoạt động vì nó gắn sự kiện vào tài liệu và sử dụng cơ chế tạo sự kiện để thực thi các trình xử lý sự kiện. – ShankarSangoli

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