Tôi đang tạo hộp đèn làm dự án trường học và tôi không thể sử dụng jQuery. Tôi có một hình ảnh. Khi bạn nhấp vào nó, Javascript sẽ tạo một div trong suốt với ID "lớp phủ". Tôi muốn div để loại bỏ chính nó, hoặc cha mẹ để loại bỏ nó, nhưng nó không hoạt động. Tôi nghĩ rằng nó đã làm với thực tế là bạn không thể liên kết 'onclick' với một yếu tố chưa tồn tại.Tạo một yếu tố có thể tự xóa nó?
Trả lời
Bạn phải xóa phần tử khỏi phần tử gốc. Một cái gì đó như thế này:
d = document.getElementById('overlay');
d.parentNode.removeChild(d);
Hoặc bạn chỉ có thể giấu nó:
d.style.display = 'none';
Và, oh: bạn có thể thêm mã Javascript vào một yếu tố (mới được tạo ra) bằng cách gán một hàm vào thuộc tính onclick.
d = document.createElement('div');
d.onclick = function(e) { this.parentNode.removeChild(this) };
Không sử dụng trình xử lý onclick
trong thẻ, sử dụng các hàm sự kiện Javascripts chẳng hạn như addEventListener
để tự động thêm sự kiện vào các phần tử. Bạn cũng nên chắc chắn rằng khi bạn loại bỏ các yếu tố bạn làm sạch đúng tất cả các tài liệu tham khảo của bạn (nói cách khác, unregister xử lý sự kiện).
Downvote tâm xây dựng? –
Tôi đã có nó :) Tôi đã làm điều đó như bart buồn, nhưng nó không hoạt động. mã của tôi trông giống như sau:
image.onclick = function(){ *create overlay*};
overlay.oncklick = function() {*overlay.parentNode.removeChild(overlay)*};
trình duyệt sẽ giống như wtf? gây ra nó đọc mã và nghĩ rằng "tôi không thể kiểm tra nếu người dùng đã nhấp vào một phần tử không tồn tại." Vì vậy, tôi đã làm điều này:
image.onclick = function(){
*create overlay*
overlay.onclick = function() {*remove overlay*};
};
thnx mọi người! – Sam
- 1. Tạo một HTML yếu tố trượt dọc
- 2. Sanitizer.GetSafeHtmlFragment có phải xóa <br> yếu tố không?
- 3. Tạo các yếu tố HTML5
- 4. Nó có một DefiningQuery nhưng không có yếu tố InsertFunction ... err
- 5. MultiSet xóa yếu tố cuối cùng
- 6. XQuery: giá trị trở lại của một yếu tố chứ không phải các yếu tố tự
- 7. Lỗi khi xóa cột yếu tố trong dữ liệu trống. Có thể
- 8. Chọn yếu tố cụ thể trước khi yếu tố khác
- 9. Hủy bỏ các yếu tố của một mảng nếu nó được tìm thấy trong một
- 10. Làm thế nào để có được một yếu tố có: trong tên của nó?
- 11. inline-block yếu tố lồng trong một yếu tố inline-block có offsetTop
- 12. mức Setting khi tạo một yếu tố vs 'cấp() <- `
- 13. động tạo file yếu tố đầu vào
- 14. JQTransform - Loại trừ yếu tố tạo kiểu?
- 15. hoán vị Tạo các yếu tố NSArray
- 16. python chọn yếu tố cụ thể từ một danh sách
- 17. yếu tố nhấp chuột nếu nó tồn tại trong capybara
- 18. Các yếu tố bảng có thể kéo jQuery
- 19. Làm thế nào để có được một yếu tố bởi href của nó trong jquery?
- 20. Bản đồ với các yếu tố tự động hết hạn
- 21. Tập tin bat có biết tên của nó và nó có thể tự xóa
- 22. bộ một yếu tố css
- 23. Tôi có thể có được một đối tượng jQuery từ một yếu tố hiện
- 24. Selenium 2 - Có thể findElement (By.xpath) được scoped đến một yếu tố cụ thể?
- 25. Làm thế nào tôi có thể di chuyển một mẫu SVG với một yếu tố
- 26. yếu tố Đếm li có thể nhìn thấy với jQuery
- 27. Tìm nếu có một yếu tố tự lặp lại n/k lần
- 28. RoR/Ruby xóa yếu tố nil từ mảng lồng nhau
- 29. Làm thế nào tôi có thể loại bỏ một yếu tố html và nội dung của nó sử dụng RegEx
- 30. Chuyển đổi yếu tố jQuery để một yếu tố dom thường xuyên
Đúng vậy, bạn không thể. Vì vậy, thiết lập các móc sau khi bạn gắn nó vào cơ thể. Ngoài ra câu hỏi của bạn sẽ được hưởng lợi từ một số mã và ví dụ về những gì bạn đã thử, và chính xác những gì đang xảy ra. – Dave
Bạn có thể vui lòng đăng đầu ra HTML hiện tại và Tập lệnh của mình không, vui lòng sử dụng để tạo lớp phủ. Có lẽ chúng ta có thể thêm 'setTimeout' nếu bạn muốn loại bỏ nó tự động dựa trên một khoảng thời gian đã qua nếu điều đó là khả thi hoặc chúng ta có thể thêm một sự kiện vào phần tử cha để loại bỏ nó. Nó sẽ làm cho nó dễ dàng hơn nhiều với các mã có liên quan mặc dù. – Nope