Mã:jQuery/Javascript: Nhấp vào sự kiện trên một hộp kiểm và 'kiểm tra' thuộc tính
$('input.media-checkbox').live('click', function(e){
e.preventDefault();
var that = $(this);
if (that.attr('checked') == 'checked'){
var m = that.attr('media');
var mid = 'verify_' + m;
that.parents('div.state-container').find('ul.' + mid).remove();
that.attr('checked', false);
} else {
var url = AJAX_URL;
$.ajax({
type: 'GET',
url: url,
dataType: 'html',
success: function(data){
that.parents('li').siblings('li.verification').children('div.media-verification').append(data).fadeIn(500);
that.attr('checked', 'checked');
}
});
}
return false;
});
Tôi ajaxing trong một hình thức, sau đó bắn sự kiện click vào hộp kiểm có liên quan đến ajax trong một phần nếu cần thiết . Biểu mẫu được chèn vào độc đáo và các sự kiện nhấp được kích hoạt, kiểm tra các hộp cần được kiểm tra và kích hoạt ajax thứ hai, vì thuộc tính checked
của hộp kiểm ban đầu là false
.
Điều gì đang quấy rầy phô mai của tôi là nếu tôi KHÔNG BAO GIỜ một trong những hộp đó. Mặc dù e.preventDefault()
, thuộc tính checked
được đặt thành false
TRƯỚC KHI thử nghiệm, do đó, câu lệnh if
luôn thực thi câu lệnh else
. Tôi cũng đã thử điều này với $.is(':checked')
, vì vậy tôi hoàn toàn bối rối.
Dường như không được chọn -> trạng thái đã chọn đọc trạng thái ban đầu, nhưng đã chọn -> bỏ chọn không. Bất kỳ giúp đỡ?
bạn đã thử 'return false;' thay vì 'e.preventDefault'? Ngoài ra, bạn đã sử dụng 'function (e) {e = e || biến cố; ...} '? –
'return false', vâng - nó ở cuối mã. Nó có nên ở bên trong 'if' đóng cửa không? Tôi không quen với đoạn mã thứ hai ... nó là gì? –
bit thứ hai đang kiểm tra nếu 'e' là không null, nếu không nó gán cho biến' event' toàn cục. –