#jquery #checkbox
#jquery #флажок
Вопрос:
У меня есть 2 страницы, одна из которых является лайтбоксом. Когда я нажимаю «Отмена» в своем лайтбоксе, я запускаю функцию на своей родительской странице, чтобы снять флажок. Состояние моего флажка снимается, но флажок не удаляется. Только если я обновлю страницу, флажок будет снят. Как мне снять флажок? Я использую jQuery.
<input class="checkbox" type="checkbox" value="krisflyer" id="chkbox"/>
<a href="lightbox.html?KeepThis=trueamp;TB_iframe=trueamp;height=600amp;width=950amp;modal=true" class="thickbox" id="lightbox"></a>
<input type="hidden" id="cancelfunc" /> //Edited
$("#cancelfunc").click(function(){
$("#chkbox").attr("checked", false);
tb_remove();
})
В моем лайтбоксе:
<a id="cancel_lightbox" href="#">Cancel</a> //Edited
$('#cancel_lightbox').click(function(){
window.parent.$("#cancelfunc").click();
return false;
})
Обновить
Извините, я забыл упомянуть одну вещь. Я использовал изображения для флажка. Если я удалю класс, который добавляет изображения, код будет работать нормально. Флажок установлен и снят правильно. Только с изображениями, они не меняются соответствующим образом.
Комментарии:
1. Откуда вы знаете, что «состояние [флажка] снимается», если «флажок не удален»?
2. Лайтбокс загрузится только тогда, когда флажок снят, а я устанавливаю флажок. Если флажок установлен, и я нажимаю на него, должно открыться диалоговое окно. Но в этом случае флажок установлен, но когда я нажимаю, вместо диалогового окна открывается лайтбокс. Таким образом, я обнаружил, что состояние флажка не установлено. А также, когда я обновляю страницу, флажок снят.
3. В синтаксисе, который у вас есть для снятия флажка, нет ничего неправильного, смотрите здесь . Что это за браузер? Ваша дочерняя страница точно находит элемент в родительской?
4. Этот флажок не установлен, поэтому обновление страницы вернет ее в непроверенное состояние.
5. Не могли бы вы опубликовать еще немного кода? К какому типу относятся элементы
cancelfunc
иcancel_lightbox
?
Ответ №1:
Не уверен, решит ли это проблему, но именно так я бы снял флажок с помощью removeAttr()
$("#cancelfunc").click(function(){
$("#chkbox").removeAttr("checked");
tb_remove();
});
Ответ №2:
$("#cancelfunc").click(function(){
$("#chkbox").checked = false;
tb_remove();
})
Комментарии:
1. А как насчет этого: $(‘input[id=chkbox]’).attr(‘checked’, false);
Ответ №3:
Попробуйте
$("#chkbox").attr("checked", "");