Как написать функцию на jQuery
Только начал изучать JS и jQuery, нужна небольшая помощь. У меня есть две html страницы первая содержит кнопку или линк, при нажатии на неё должна открываться вторая страница, и должен добавиться атрибут 'checked', к тегу с определенным классом, а с других инпутов удаляться:
1.html
<a class="link_1" href="2.html"> CLICK ME </a>
<a class="link_2" href="2.html"> CLICK ME 2 </a>
<a class="link_3" href="2.html"> CLICK ME 3 </a>
2.html
<input type="radio" id="tab1" class="input_1" name="tab-control">
<input type="radio" id="tab2" class="input_2" name="tab-control">
<input type="radio" id="tab3" class="input_3" name="tab-control">
js
$(document).ready(function(){
$('.link_1').click(
$('.input_1').attr('checked',true)
);
$('.link_2').click(
$('.input_2').attr('checked',true),
$('.input_1').removeAttr('checked','checked')
);
$('.link_3').click(
$('.input_3').attr('checked',true),
$('.input_1').removeAttr('checked','checked'),
$('.input_2').removeAttr('checked','checked')
);
});
всегда выполняется последняя функция то есть атрибут 'checked' добавляется к input_3 при нажатии на любой линк.
<input type="radio" id="tab1" class="input_1" name="tab-control">
<input type="radio" id="tab2" class="input_2" name="tab-control">
<input type="radio" id="tab3" class="input_3" name="tab-control" checked="checked">
Пробывал вызвать событие .on('click'), но тоже не получается.
Ответы (2 шт):
JavaScript работает только на том страницу которий тот момент открит, то есть евент не будет работать на втором страницу если обязательно чтоб так било нужно при клике на localstorage у сохранит нужний елемент и при загрузки страницу проверит если есть данний инпуит класса на нему и дать параметр например
$(document).ready(function(){
$('.link_1').click(function (e){
localStorage.setItem('check','.input_1')
});
});
и при загрузке второго страницу нужно
$(document).ready(function(){
if(localStorage.getItem('check')){
$("input").removeAttr("checked");
$(localStorage.getItem('check')).attr('checked',true);
}
});
За акцент извините
Всё гораздо проще. Добавляете Вашим ссылкам дополнительный параметр (#) со значением, которое соответствует классу радиобаттона:
<a class="link_1" href="2.html#input_1"> CLICK ME </a>
<a class="link_2" href="2.html#input_2"> CLICK ME 2 </a>
<a class="link_3" href="2.html#input_3"> CLICK ME 3 </a>
При переходе на страницу с батонами получаете этот параметр и выделяете нужный батон:
let href = window.location.href.split('#').pop(); //получаете значение доп.параметра
$('[type="radio"]').each(function(){ //в цикле проходите по батонам
if($(this).attr('class') == href) { //если класс соответствует доп.параметру
$(this).prop('checked', true); //выделяете батон
$('[type="radio"]').not($(this)).prop('checked', false); //с остальных снимаете выделение
}
})