Php .trigger(';change';)来持久化jQuery驱动的元素显示

Php .trigger(';change';)来持久化jQuery驱动的元素显示,php,jquery,Php,Jquery,我有各种输入元素,它们控制各种依赖div的“隐藏”状态 输入的类型不同,输入必须等于的值(显示div)也不同。我使用php编写javascript(jQuery),这取决于以下因素,使用的是一般代码: php $remove .=" $('#".$id."').removeClass('hide');"; $add .="$('#".$id."').addClass('hide');"; 注意:$remove和$add变量是使用串联和循环构建的,因为可能有几个隐藏的元素需要隐

我有各种输入元素,它们控制各种依赖div的“隐藏”状态

输入的类型不同,输入必须等于的值(显示div)也不同。我使用php编写javascript(jQuery),这取决于以下因素,使用的是一般代码:

php

$remove .=" $('#".$id."').removeClass('hide');";        
$add .="$('#".$id."').addClass('hide');";

注意:$remove和$add变量是使用串联和循环构建的,因为可能有几个隐藏的元素需要隐藏或显示(因此。=)

这通常会导致页面上出现一段代码(实际代码),例如:

jQuery

$(document).ready(function(){   
    $("input[name$='q_32']").change(function(){
        if(this.value == 'Yes') {
              $('#qu_33').removeClass('hide');
        } else {
             $('#qu_33').addClass('hide');
        }
    }).trigger('change');

    $("input[name$='q_32']").change(function(){
        if(this.value == 'No') {
              $('#qu_34').removeClass('hide');
        } else {
             $('#qu_34').addClass('hide');
        }
    }).trigger('change');
});
在页面上,这很有效:当有问题的单选按钮(输入名称q_32)被更改时,相应的元素被隐藏或显示

.trigger('change')
之所以存在,是因为我希望在页面加载时隐藏或显示div,设置了checked state服务器端

以下是页面现在加载的HTML格式:

HTML

<span>Yes</span>
<input type="radio" id="q_32_Yes" value="Yes" name="q_32" checked="">
<span>No</span>
<input type="radio" id="q_32_No" value="No" name="q_32">


<div id="qu_33" class="hide">...</div>
<div id="qu_34" class="">...</div>
是
不
...
...
i、 e.单选按钮在“是”的选中状态下加载,但显示了不正确的div-因此它正在触发,但似乎读取的值是错误的。

脚本应为

$(document).ready(function () {
    $("input[name$='q_32']").change(function () {
        if (this.value == 'Yes') {
            $('#qu_33').removeClass('hide');
        } else {
            $('#qu_33').addClass('hide');
        }
    });

    $("input[name$='q_32']").change(function () {
        if (this.value == 'No') {
            $('#qu_34').removeClass('hide');
        } else {
            $('#qu_34').addClass('hide');
        }
    });

    $("input[name$='q_32']").filter(':checked').change()
});
演示:

将使用更正确的脚本

$(document).ready(function () {
    $("input[name$='q_32']").change(function () {
        if (this.value == 'Yes') {
            $('#qu_33').removeClass('hide');
            $('#qu_34').addClass('hide');
        } else {
            $('#qu_33').addClass('hide');
            $('#qu_34').removeClass('hide');
        }
    }).filter(':checked').change();
});
演示:


如果您有更多相同代码的实例,那么

谢谢!我不知道jQuery过滤函数。这很好用。
$(document).ready(function () {
    $("input[name$='q_32']").change(function () {
        if (this.value == 'Yes') {
            $('#qu_33').removeClass('hide');
            $('#qu_34').addClass('hide');
        } else {
            $('#qu_33').addClass('hide');
            $('#qu_34').removeClass('hide');
        }
    }).filter(':checked').change();
});