2009-02-25 14 views
6

Tôi đang cố gắng tạo trang web nơi người dùng có thể nhấp vào bất kỳ yếu tố nào để chỉnh sửa css của nó. Tôi sử dụng sau đây để thêm chức năng bấm vào tất cả các lis, divs và uls.Có thể chỉ kích hoạt jQuery.click trên phần tử trên không?

$('li,div,ul').click(function() { 

alert(this.id); 

}); 

Vấn đề là nếu tôi bấm vào một yếu tố li, sau đó tôi nhận được cảnh báo cho rằng, và bất kỳ yếu tố bên dưới nó. (tất cả các thùng chứa).

Có thể chỉ có trình kích hoạt phần tử hàng đầu khi được nhấp không?

Trả lời

17

Bạn muốn dừng tuyên truyền sự kiện, bạn thực hiện việc này trong jQuery bằng cách gọi phương thức stopPropagation trên đối tượng sự kiện.

$('li,div,ul').click(function (e) { 
    e.stopPropagation(); 
    alert(this.id); 
}); 
1

Tôi tin rằng bạn muốn sử dụng stopPropagation(); bên trong hàm nhấp chuột.

1

Nghe có vẻ như tôi đang tìm kiếm .stopPropagation(). Gọi stopPropagation sẽ ngăn sự kiện từ "bubbling" lên đến các thùng chứa cha.

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