Đối với một số nhỏ như vậy nhân vật, cách dễ nhất là đặt mỗi trong số họ trong khoảng thời gian riêng của mình:
<span>0</span><span>0</span><span>0</span><span>0</span> <span>0</span><span>0</span><span>0</span><span>0</span> <span>0</span><span>0</span><span>0</span><span>0</span>
Tôi cũng muốn đưa tất cả những người trong một container, và móc sự kiện click
trên thùng sơn chứ không phải trên nhịp cá nhân, vì vậy:
<div id="container">
<span>0</span><span>0</span><span>0</span><span>0</span> <span>0</span><span>0</span><span>0</span><span>0</span> <span>0</span><span>0</span><span>0</span><span>0</span>
</div>
Sau đó, móc nó lên:
var container = document.getElementById("container");
if (container.addEventListener) {
container.addEventListener('click', clickHandler, false);
}
else if (container.attachEvent) {
container.attachEvent('onclick', function(e) {
return clickHandler.call(container, e || window.event);
});
}
Trong handler nhấp chuột của bạn, sử dụng event.target
để tìm ra khoảng được nhấp:
function clickHandler(event) {
var span = event.target;
// Do something with the span, such as look at its `innerHTML` and
// see if it's "0" -- if so, make it "1"; if not, make it "0"
}
More để khám phá:
Như bạn thấy ở trên, tôi đã phải làm việc trên thực tế là một số trình duyệt sử dụng các tiêu chuẩn addEventListener
, và những người khác (IE8 trở về trước) sử dụng attachEvent
.Tôi khuyên bạn nên sử dụng thư viện JavaScript tốt như jQuery, Prototype, YUI, Closure hoặc any of several others. Họ làm mịn các loại trình duyệt không thống nhất đó và thêm nhiều chức năng tiện ích rất hữu ích để bạn có thể tập trung vào những gì bạn đang cố gắng làm.
Ví dụ, mã xử lý bằng văn bản sử dụng jQuery:
$("#container").on("click", "span", function() {
// `this` refers to the span that was clicked; you can use
// `innerHTML` as above, or wrap it in a jQuery instance
// like this:
// var $this = $(this);
// ...and then use jQuery's `html` function to both
// retrieve and set the HTML.
});
Nếu bạn sử dụng các font chữ đơn bạn có thể có thể tìm ra vị trí vì của các tọa độ nhấp chuột (nhưng tôi sẽ không). Bạn sẽ cần phải bao bọc mọi ký tự vào '' hoặc tương tự – scibuff
@scibuff thực sự hoạt động tốt nếu bạn không tạo ra padding/margin/border. –
Tôi không biết rằng bạn sẽ có thể làm điều này trừ khi bạn chỉ định một lớp span cho mỗi ký tự trong chuỗi. –