У меня есть набор переключателей, и я хочу, чтобы и кнопка, и прикрепленный текст были активными (для повышения удобства использования).
Это должно быть очень просто, но по какой-то причине состояние переключателя не будет обновляться при запуске из jQuery. Что происходит, так это то, что атрибут checked
появится в DOM, но переключатель, кажется, не проверен (визуально).
Примечание: он отлично работает, когда я запускаю код из консоли, но когда он нормально запускается моей функцией, он не обновляется. Кроме того, этот код отлично работает для отмены проверки других переключателей в группе ... поэтому я не понимаю, почему он не работает в другом направлении.
Вот моя разметка:
<div class="radio-input">
<input type="radio" name="ad_category" id="cat_standard">
<span class="inline-label">Standard</span>
</div>
<div class="radio-input">
<input type="radio" name="ad_category" id="cat_reward">
<span class="inline-label">Reward</span>
</div>
и jQuery:
$(".radio-input").click( function() {
if (!$(this).children("input:radio").attr("checked")) {
$(this).siblings(".radio-input").children("input:radio").removeAttr("checked");
$(this).children("input:radio").attr("checked","checked");
}
});
Для записи, вызов click()
для элемента приводит к тому же самому результату, даже если он отлично работает при запуске из консоли. Кроме того, .prop
и .attr
дают одинаковый результат (работает в консоли, не работает в обычном потоке).