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