0

当我单击单选按钮时,我成功地执行了更改,但问题是,当我重新加载页面时,单选按钮选择被保留,但更改不是。换句话说,如果我单击单选按钮 #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);

任何帮助是极大的赞赏。

谢谢,

4

1 回答 1

0

某些浏览器会保留您在重新加载时为某些按钮选择的选项(不保证始终工作或在每个浏览器上工作),但绝对不会保留触发事件等内容。换句话说,您需要以两种方式中的一种(或两种方式)存储您的单选按钮选择和不透明度选择,以便它们在重新加载时持续存在 1.)HTML5 localStorage(不建议为此使用cookie)2)服务器端。

您当前的代码不存储任何内容 - 您很幸运,您的浏览器碰巧在重新加载时保留了您的单选按钮选择。

编辑:所以你没有对单选按钮感到幸运......非常好!如果您可以确定单选按钮在重新加载时保持选中状态,那么是的,您可以验证它是否被选中。

假设您确切地知道要验证的单选按钮的 id - 并且您想知道它是否被选中。在您的文档加载时执行此操作: $('#myradiobutton').is(':checked'); 如果未选中将返回 false,如果选中则返回 true。然后你可以用 if 语句说

if( $('#myradiobutton').is(':checked') ){
   dothis();
}
于 2012-09-05T01:20:03.287 回答