У вас есть несколько ошибок:
1) Вам нужно определить свою функцию checkBoxes
перед ее вызовом.
2) На самом деле не ошибка, но нет смысла говорить addClass('флажки'), когда вы уже добавили этот класс в HTML.
3) $(this).find("input:checkbox").prop("checked")
Это будет определять только то, установлен первый флажок или нет.Я почти уверен, что вы хотите, чтобы $ (this) ссылался на текущий флажок, но он не в нужной области.
4) Вы написали att
вместо attr
5) У вас есть дополнительный )
в конце вашей функции.
Вот код, который, я считаю, делает то, что вы хотите:
$.fn.checkBoxes = function() {
$(this)
.addClass("checkboxes")
.find("input:checkbox")
.hide()
.end() -- revert back to $(this)
.find("li")
.each(function(){
$(this).addClass(
$(this)
.find("input:checkbox")
.prop("checked") ? "checked" : "unchecked"
);
})
.click(function(e) {
var $cb = $(this)
.toggleClass("checked unchecked")
.find("input:checkbox");
$cb.attr("checked", !$cb.prop("checked"));
});
};
$('ul.checkboxes').checkBoxes();
http://jsfiddle.net/cpvQ4/