Я пытаюсь создать некоторые параметрические фильтры, но я не хочу вызывать функцию, которая делает мой вызов AJAX поиска, когда фильтр переключателя уже выбран.
$('#contentType input:enabled').bind('click', function(e){
var $this = $(this),
$type = this.type,
$id = this.id;
if ($type === 'radio') {
if ($id === 'allContent'){
sFrm.$boxes.attr({'checked': false});
sFrm.$specificRadio.attr({'disabled': true});
searchAjax();
removeFilter();
}
} else if ($type === 'checkbox') {
if (sFrm.$boxes.filter(':checked').length === 0) {
sFrm.$allRadio.trigger('click');
} else {
var filterConfig = {
index: $('.subFilter').index($this),
txt: jQuery.trim($this.parent().text())
}
sFrm.$allRadio.attr({'checked': false});
sFrm.$specificRadio.attr({'disabled': false, 'checked': true});
searchAjax();
if ($this.is(':checked')) {
addFilter(filterConfig);
} else {
removeFilter(filterConfig.index);
}
}
}
});
Итак, jQuery выше смотрит наВСЕ включенные входы в коллекции, и когда пользователь нажимает радиокнопку allContent , вызывается функция searchAjax .
Это верно, если указанная радиокнопка еще не выбрана/ проверено.В данный момент функция все еще вызывается, когда кнопка выбрана, и я хотел бы остановить это поведение, но не могу понять, как?
РЕДАКТИРОВАТЬ
Не уверен, что я объяснилправильно.Надеемся, что этот jsFiddle поможет:
http://jsfiddle.net/QsbRp/3/
В основном, если Все типы контента уже проверены и при проверке нажимается, тогда searchAjax не долженбыть призван.В настоящее время она вызывает функцию.
Когда она не отмечена и не нажата, она должна вести себя, как сейчас (отключить переключатель с родным братом и снять все флажки).