当我点击一个单选按钮时,我成功地执行了更改,但问题是,当我重新加载页面时,单选按钮选择被保留,但更改不是。换句话说,如果我单击单选按钮#1,它将降低某些字段的不透明度。当我回到这个页面时,所有字段都具有完全不透明度,直到我再次单击单选按钮才会执行该操作。
这是我的代码:
(function($) {
// Document Ready
$(document).ready(function() {
// trigger change on the radio list to show selected field
$('#acf-feature_slide ul.radio_list li label input').trigger('change');
});
// Content Type change
$('#acf-feature_slide ul.radio_list li label input').live('change', function() {
// vars
var value = $(this).val();
// show the selected field
if( value == "internal" ) {
$(this).parentsUntil('tr').find('div.row-layout-field').eq(3).css('opacity', '1.0');
$(this).parentsUntil('tr').find('div.row-layout-field').eq(4).css('opacity', '0.2');
}
else if( value == "external" ) {
$(this).parentsUntil('tr').find('div.row-layout-field').eq(3).css('opacity', '0.2');
$(this).parentsUntil('tr').find('div.row-layout-field').eq(4).css('opacity', '1.0');
}
else if( value == "none" ) {
$(this).parentsUntil('tr').find('div.row-layout-field').eq(3).css('opacity', '0.2');
$(this).parentsUntil('tr').find('div.row-layout-field').eq(4).css('opacity', '0.2');
}
else {
$(this).parentsUntil('tr').find('div.row-layout-field').eq(3).css('opacity', '1.0');
$(this).parentsUntil('tr').find('div.row-layout-field').eq(4).css('opacity', '1.0');
}
});
})(jQuery);
非常感谢任何帮助。
谢谢,
答案 0 :(得分:0)
某些浏览器会在重新加载时保留您为某些按钮选择的选项( NOT GUARANTEED 始终工作或在每个浏览器上工作),但肯定不会保留触发事件之类的内容。换句话说,您需要以2种方式中的一种(或两种方式)存储您的单选按钮选项和不透明度选项,以便它们在重新加载时保持不变1.)HTML5 localStorage(不建议使用cookie)2)服务器端。
您当前的代码没有存储任何内容 - 您很幸运,因为您的浏览器在重新加载时碰巧选择了单选按钮。
编辑:所以你没有幸运的收音机按钮......非常好!如果你可以确定单击按钮在重新加载时保持检查状态,那么是的,你可以验证它是否被检查。
假设您确切地知道要验证的单选按钮的ID,并且您想知道它是否已经过检查。在您的文档加载上执行此操作:$('#myradiobutton')。is(':checked');如果未选中则返回false,如果选中则返回true。然后你可以使用if语句来说
if( $('#myradiobutton').is(':checked') ){
dothis();
}