このfind
関数をチェックボックスで正しく機能させるのに問題があります。チェックボックスを選択できなかったため、ステートメントを削除するように言われました。それreturn false;
が原因かどうかはわかりませんが、ステートメントif (attrColor == 'All'){...}
は機能しなくなりました。
チェックボックスが選択されている場合にすべてを表示するなど、チェックボックスで機能するようにこの関数を変更するにはどうすればよいですか?
関数の簡単な例を含むフィドルをここに投稿しました:http://jsfiddle.net/chayacooper/WZpMh/92/
$(document).ready(function () {
var selected = [];
$('#attributes-Colors *').click(function () {
var attrColor = $(this).data('color');
var $this = $(this);
if ($this.parent().hasClass("active")) {
$this.parent().removeClass("active");
selected.splice(selected.indexOf(attrColor),1);
}
else {
$this.parent().addClass("active");
selected.push(attrColor);
}
if (attrColor == 'All') {
$('#content').find('*').show();
} else {
$("#content").find("*").hide();
$.each(selected, function(index,item) {
$('#content').find('[data-color *="' + item + '"]').show();
});
}
// Removed this to allow checkboxes to accept input
//return false;
});
});