Điều gì sẽ là một cách thích hợp để kiểm tra/bỏ chọn hộp kiểm được đặt bên trong phần tử kích hoạt chức năng của tôi?Kiểm tra hộp kiểm jQuery/bỏ chọn
Dưới đây là mã của tôi:
<table id="news_list">
<tr>
<td><input type="checkbox" name="news[1]" /></td>
<td>TEXT</td>
</tr></table>
$("#news_list tr").click(function() {
var ele = $(this).find('input');
if(ele.is(':checked')){
ele.removeAttr('checked');
$(this).removeClass('admin_checked');
}else{
ele.attr('checked', 'checked');
$(this).addClass('admin_checked');
}
});
Vấn đề là tôi có thể kiểm tra và bỏ chọn mỗi hộp chỉ một lần. Sau khi tôi đã kiểm tra và bỏ chọn đôi khi nó vẫn làm thêm/loại bỏ lớp, nhưng không bao giờ kiểm tra một hộp một lần nữa (ngay cả khi tôi bấm vào hộp kiểm, không phải hàng bảng).
Tôi đã thử sử dụng trình kích hoạt .bind ('click') nhưng kết quả tương tự.
Bất kỳ giải pháp nào?
Nhìn vào câu trả lời, tôi không chắc họ đưa ra giải pháp cho những gì bạn đang cố gắng làm. Tôi không thấy lý do tại sao nó sẽ có ý nghĩa để vô hiệu hóa hộp kiểm, đó là những gì những câu trả lời đang làm (Bởi vì khi bạn bấm vào hộp kiểm nó sẽ trở thành kiểm tra và điều đó có nghĩa là nếu tuyên bố sẽ ngay lập tức bỏ chọn nó ... và điều đó có nghĩa là bạn có thể không bao giờ thực sự kiểm tra hộp kiểm bằng cách nhấp vào hộp kiểm thực tế ... phải không?). Đây có phải là điều bạn đang muốn làm không ?: http://jsfiddle.net/7gbhf/ – Joonas
@Joonas Cảm ơn, đây chính xác là những gì tôi cần! Câu trả lời của Jai đã làm việc cho hàng signle, không phải cho nhiều người – user1587985
Tốt. Một điều mặc dù. Nếu jsfiddle của tôi là chính xác những gì bạn cần, tôi không chắc chắn tôi thấy câu trả lời của Jai hoạt động như thế nào cho một hàng. Nó không cho phép bạn kiểm tra hộp kiểm bằng cách nhấp vào hộp kiểm, đó là do câu lệnh if như tôi đã giải thích ở trên. Vì vậy, tôi nghĩ rằng bạn đã bỏ lỡ phần đó, hoặc ... Tôi vẫn không biết những gì bạn muốn :) – Joonas