Кажется, aLink.trigger('click')
звонок по какой-то причине не работает.Я исправил это, заменив эту строку:
oLabel && oLabel.click(function(){aLink.trigger('click');});
следующим:
oLabel && oLabel.click(function(){
var forAttr = null;
if(forAttr = $(this).attr('for')) {
var element = $(this).siblings('#' + forAttr);
if(element.length) {
element.trigger('click');
}
}
else {
aLink.trigger('click');
}
});
Что это делает, проверяет родные элементы метки для элемента в его атрибуте for и еслиэлемент существует, он использует его вместо aLink.Я использую братьев и сестер, потому что это быстрее, чем поиск по всему документу.Не стесняйтесь изменить это при необходимости.
Надеюсь, это поможет.
РЕДАКТИРОВАТЬ: Хорошо, возможно, я бросился в это с этим ответом.Мое решение неверно на многих уровнях.
Я считаю, что на самом деле происходит то, что нажатие на ярлык вызывает двойной щелчок.Таким образом, при нажатии на метку срабатывает щелчок по умолчанию, который проверяет элемент, и сразу после того, что снимает флажок, запускается еще один щелчок.
Мое предыдущее решение на самом деле ничего не делало, просто предотвращало повторный вызов, поскольку ни одно из условий фактически не выполнялось (элемент '#' + forAttr не является родственным).
Я обнаружил, что просто комментирование строки с ошибкой устраняет эту проблему.