我有这个 HTML 表单
<form>
<label><input type="radio" name="type" id="js-item" /> Select me</label>
<div id="js-text" style="display:none;">You selected an item</div>
</form>
还有一些 jQuery JS
$(document).ready(function() {
$(document).on('click','#js-item',function(){
$('#js-text').show();
});
});
当用户单击单选按钮时,div 会显示自己。但是,当离开该页面(例如通过提交或单击链接)并在浏览器中按下后退按钮时,浏览器会重新选择单选项目。但是 div 也没有显示(就像它被选中一样)。未触发 show() 事件
例如,当导航返回时,如何触发所有表单输入处理程序加载到浏览器设置的表单当前状态?无需复制所有逻辑代码
任何帮助表示赞赏。问候
解决方案
根据反馈,我创建了这个,也许它可以帮助某人。
<form>
<label><input type="radio" data-toggle="js-text" /> Select me</label>
<div id="js-text">You selected an item</div>
</form>
$(document).ready(function() {
$('*[data-toggle]').each(function(){
var $this = $(this);
var $toggle_el = $('#'+$(this).data('toggle'));
$this.is(':checked') ? $toggle_el.show() : $toggle_el.hide();
$(document).on('click', $this, function (e) {
$this.is(':checked') ? $toggle_el.slideDown('fast') : $toggle_el.hide();
});
});
});
如果要消除任何闪烁,则必须将隐藏类添加到切换可见性的元素中。谢谢。