2010-06-10 30 views
11

Tôi là một mã hóa thành phần báo cáo JavaScript, yêu cầu nhiều danh sách của LI phải được chọn chung thành một nhóm với phản hồi trực quan.Nhiều yếu tố HTML có thể nhận tiêu điểm cùng một lúc không?

Tôi đang nghĩ đến việc điều chỉnh sự kiện onfocus. Có thể cho nhiều phần tử HTML để nhận tiêu điểm cùng một lúc không?

Không phải đầu vào, nhưng DIV, vì vậy tôi không cần con trỏ. Tôi chỉ muốn một số DIV được "chọn" riêng biệt với những người khác, được tô màu khác nhau để mô phỏng nhiều mục lựa chọn.

+0

tại sao bạn muốn làm điều này với nhiều onfocus !? chỉ cần gọi tất cả những gì bạn cần sau sự kiện onfocus duy nhất –

+0

anh ta muốn con trỏ nhấp nháy trong tất cả 10 đầu vào văn bản, duh –

+0

Không nhất thiết đầu vào, nhưng DIV, vì vậy tôi không cần con trỏ. – Olaseni

Trả lời

17

Không, bạn chỉ có thể lấy nét trên một phần tử tại một thời điểm.

+3

Chỉnh sửa đẹp, có thể đã lưu bạn ;-) –

+0

Vâng tôi phải chỉnh sửa nó trước khi bất kỳ câu trả lời nào khác được đăng theo cách đó không nghi ngờ đạo văn sẽ phát sinh;) – Babiker

1

Tôi không tin như vậy. Nếu hai trường văn bản đã tập trung cùng một lúc, thì sẽ nhận được đầu vào? Bạn có thể "mô phỏng" điều này (một trường có tiêu điểm và mã "trùng lặp" các giá trị), nhưng chỉ một mục tại một thời điểm có thể là "tiêu điểm".

2

Không. Toàn bộ điểm lấy nét là một phần tử được chọn (như trong một "đèn chiếu" cho nó). Nhưng nếu bạn muốn hộp văn bản viết hai lần thì hãy sử dụng số này

<input type="text" name="firstbox" onchange="firstbox.value = secondbox.value; return true;"> 
<input type="text" name="secondbox"> 
3

Như các câu trả lời khác, chỉ có 1 phần tử có thể tập trung tại một thời điểm nhất định. Thay vào đó, những gì bạn có thể làm là thêm một lớp vào từng phần tử 'đã chọn'.

Một ví dụ đơn giản (sử dụng yui) sẽ là:

<style type="text/css"> 
    .selectedItem{border: 2px dashed #c0ffee;} 
</style> 
... 
<ul class='listContainer'> 
    <li> ... </li> 
    <li> ... </li> 
    <li> ... </li> 
</ul> 
... 
<script type="text/javascript"> 
    Y.one('.listContainer').delegate(
     'click', 
     function(e){ e.currentTarget.toggleClass('selectedItem');}, 
     'li' 
    ); 
</script> 
+1

Demo tại http://jsbin.com/axuce3/8;) – unomi

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